Mấy thím đi làm lập trình có hay gặp dự án phức tạp không - Page 2 - vozForums
vozForums
Go Back   vozForums > Học tập và công việc > Ngành CNTT > Phát triển Phần mềm
Reply
 
Thread Tools
  #11  
Old 29-09-2019, 13:20
foreveralone's Avatar
foreveralone foreveralone is online now
Senior Member
 
Join Date: 07-2011
Posts: 508
Re: Mấy thím đi làm lập trình có hay gặp dự án phức tạp không

Quote:
Originally Posted by momotico View Post
nói như bạn thì dễ quá
về cơ bản so sánh fe và be là như so sánh cam với táo
có thể với bạn dễ, nhưng khó với người khác,và ngược lại
cá nhân mình thấy học be ban đầu có thể khó, nhưng sau sẽ dễ dàng hơn
còn fe thì ban đầu có thể dễ, nhưng càng đi sâu vào càng khó, nhất là khi bạn end game của bạn là pixel perfect
Thím thử cho ví dụ về khó của frontend xem? Cái pixel perfect nghe thì thấy ghê ngầu chứ thật ra cũng chỉ là đọc spec của browser để coi behaviour của từng css property hoặc dom object property. Cực thì đúng, nhưng khó thì không thấy nó khó.
Reply With Quote
  #12  
Old 29-09-2019, 16:20
Nipin Nipin is offline
Senior Member
 
Join Date: 03-2018
Posts: 1,330
Re: Mấy thím đi làm lập trình có hay gặp dự án phức tạp không

Tôi thấy khó nhất là khi đéo chọn được stack ngon mà dùng, phải dùng mấy thứ cứt chó để chiều khách hoặc "teammate" thôi chứ backend frontend các kiểu thì đến 99% các project có khó vẹo gì.

Kiểu như backend, chọn php ruby nodejs thậm chí là golang được một thời gian đều thấy cứt cả, từ hồi tôi dùng elixir cảm thấy yên tâm vãi nồi. Đặc biệt là vào production, setup xong cái error logger, thằng nào báo lỗi thì vào đọc log, xem dòng đầu tiên của backtrace là biết lỗi chỗ nào, fix 5 phút là xong.

Còn business logic aka database thì cũng tuỳ thư viện, thư viện thọt hoặc đíu có lại chả kêu khó, thư viện ngon support tận răng từ migration (up, down, reset, seed thậm chí là dump), type coercion, validation (thằng validation ngon là phải catch được mấy cái constraint như foreign key hay unique index mà đếch phải dùng thư viện ngoài), rồi thì hỗ trợ build query (có thể composable, có thể trộn raw string cho query phức tạp)... các kiểu. Thằng hỗ trợ ngon dùng sẽ thấy đơn giản hơn nhiều.

Nhưng cơ bản là mấy thằng elixir đéo có ai cho cậu dùng, trừ khi chơi dự án cá nhân, mà thường mấy cái này dùng elixir hơi overkill.

Frontend cũng tương tự, tôi thì ưa dùng svelte, code ngắn thì vãi cứt, nói chung tiện, nhưng tiêu chuẩn bây giờ là react cơ, đéo phải react tao đéo nhận, đến vue cũng khó nói chuyện... Legacy thì toàn jquery, mà đéo phải jquery 2 3 nhé, toàn là jquery 1.9 trở lại...
CSS framework thì cũng đéo bao giờ nghĩ tới chuyện tự build cho nó hệ thống hoá, toàn chắp vá từ mấy thằng của khỉ như bootstrap hay material design, bootstrap còn khá tí, mấy thằng khác như material-ui, semantic ui, ant design các kiểu toàn cứt cả, chúng nó đến đặt tên class còn ngu hơn chó.
Reply With Quote
  #13  
Old 29-09-2019, 17:28
ManhVoKiem ManhVoKiem is offline
Member
 
Join Date: 12-2011
Posts: 51
Re: Mấy thím đi làm lập trình có hay gặp dự án phức tạp không

Quote:
Originally Posted by Nipin View Post
Tôi thấy khó nhất là khi đéo chọn được stack ngon mà dùng, phải dùng mấy thứ cứt chó để chiều khách hoặc "teammate" thôi chứ backend frontend các kiểu thì đến 99% các project có khó vẹo gì.

Kiểu như backend, chọn php ruby nodejs thậm chí là golang được một thời gian đều thấy cứt cả, từ hồi tôi dùng elixir cảm thấy yên tâm vãi nồi. Đặc biệt là vào production, setup xong cái error logger, thằng nào báo lỗi thì vào đọc log, xem dòng đầu tiên của backtrace là biết lỗi chỗ nào, fix 5 phút là xong.

Còn business logic aka database thì cũng tuỳ thư viện, thư viện thọt hoặc đíu có lại chả kêu khó, thư viện ngon support tận răng từ migration (up, down, reset, seed thậm chí là dump), type coercion, validation (thằng validation ngon là phải catch được mấy cái constraint như foreign key hay unique index mà đếch phải dùng thư viện ngoài), rồi thì hỗ trợ build query (có thể composable, có thể trộn raw string cho query phức tạp)... các kiểu. Thằng hỗ trợ ngon dùng sẽ thấy đơn giản hơn nhiều.

Nhưng cơ bản là mấy thằng elixir đéo có ai cho cậu dùng, trừ khi chơi dự án cá nhân, mà thường mấy cái này dùng elixir hơi overkill.

Frontend cũng tương tự, tôi thì ưa dùng svelte, code ngắn thì vãi cứt, nói chung tiện, nhưng tiêu chuẩn bây giờ là react cơ, đéo phải react tao đéo nhận, đến vue cũng khó nói chuyện... Legacy thì toàn jquery, mà đéo phải jquery 2 3 nhé, toàn là jquery 1.9 trở lại...
CSS framework thì cũng đéo bao giờ nghĩ tới chuyện tự build cho nó hệ thống hoá, toàn chắp vá từ mấy thằng của khỉ như bootstrap hay material design, bootstrap còn khá tí, mấy thằng khác như material-ui, semantic ui, ant design các kiểu toàn cứt cả, chúng nó đến đặt tên class còn ngu hơn chó.
Thím làm hệ thống gì mà backend căng cò vậy. Cơ bản mấy cái kia ngon đủ dùng mà
Reply With Quote
  #14  
Old 29-09-2019, 18:11
Nipin Nipin is offline
Senior Member
 
Join Date: 03-2018
Posts: 1,330
Re: Mấy thím đi làm lập trình có hay gặp dự án phức tạp không

Quote:
Originally Posted by ManhVoKiem View Post
Thím làm hệ thống gì mà backend căng cò vậy. Cơ bản mấy cái kia ngon đủ dùng mà
Nếu ngon đủ dùng thì mấy cậu trên đã đíu kêu backend phức tạp. Thiên hạ đã đíu phải cắm đầu vào microservices để tạo clear boundaries.

Mà cậu đọc hiểu có vấn đề à? Post của tôi nói là backend đổi sang thằng ngon thì sẽ thấy đéo phức tạp nữa.

Còn vấn đề với mấy thằng trên thì nhiều, đơn giản như mấy cái class tự thay đổi self state mỗi lần method của nó được gọi từ đâu đó cảm giác đã thốn rồi.

Nhân tiện về mấy dạng ORM/data mapper, các bạn khi chọn một thằng, thì phải đặt câu hỏi là mình thường gặp mấy trường hợp dạng này dạng kia thì cái ORM/datamapper này làm thế nào.

Ví dụ đơn giản như tôi muốn lưu user vào database, cần validation khác biệt giữa regular user với admin (thêm group=admin, username có thể có 1 2 ký tự thay vì regular user bắt buộc phải có 6,....) nhưng ngoài elixir có thằng ecto ra thì tôi chưa gặp thằng thư viện nào của ngôn ngữ nào đoạn này nó làm dễ dàng cả (lưu ý là validation phải tính cả unique constraint, error messages các kiểu.

Nếu không hỗ trợ từ mức thư viện thì không phải là trời sập, tự viết cũng được, nhưng thêm code (glue code, adhoc code) là thêm bug, là thêm convention, là thêm document (hoặc trao đổi nhóm), là phải nhớ thêm một đoạn "exception" này... Project lớn dần mấy cái này càng tích luỹ thêm, càng khó maintain. Cho nên nhiều thằng kêu gào backend khó là vì thế.

Chứ 10 cái tables hay 1000 cái tables mà tất cả chủ yếu là CRUD thì có phức tạp gì.
Reply With Quote
  #15  
Old 07-10-2019, 11:09
BadCoder BadCoder is offline
Member
 
Join Date: 11-2017
Posts: 55
Re: Mấy thím đi làm lập trình có hay gặp dự án phức tạp không

Phức tạp theo kiểu áp dụng những công nghệ cũ kỹ, lạc hậu thì chỗ em dính nhiều lắm ạ, thêm văn hóa bức bối tù túng nữa, stress quá :(
Reply With Quote
  #16  
Old 07-10-2019, 23:10
V0Zsupport's Avatar
V0Zsupport V0Zsupport is offline
Senior Member
 
Join Date: 08-2009
Location: Google adsense
Posts: 891
Re: Mấy thím đi làm lập trình có hay gặp dự án phức tạp không

đi làm ngán nhất mớ business của bọn BA lởm đổi liên tọi công nghệ thì toàn code chay kiểu 3 lớp query các kiểu viết chay hết viết mỗi câu insert mà nhiều param dò mỏi cả mắt
Reply With Quote
  #17  
Old 09-10-2019, 05:29
taylqse04184 taylqse04184 is online now
Junior Member
 
Join Date: 01-2015
Posts: 23
Re: Page 2 - Mấy thím đi làm lập trình có hay gặp dự án phức tạp không

Quote:
Originally Posted by Nipin View Post
Nếu ngon đủ dùng thì mấy cậu trên đã đíu kêu backend phức tạp. Thiên hạ đã đíu phải cắm đầu vào microservices để tạo clear boundaries.

Mà cậu đọc hiểu có vấn đề à? Post của tôi nói là backend đổi sang thằng ngon thì sẽ thấy đéo phức tạp nữa.

Còn vấn đề với mấy thằng trên thì nhiều, đơn giản như mấy cái class tự thay đổi self state mỗi lần method của nó được gọi từ đâu đó cảm giác đã thốn rồi.

Nhân tiện về mấy dạng ORM/data mapper, các bạn khi chọn một thằng, thì phải đặt câu hỏi là mình thường gặp mấy trường hợp dạng này dạng kia thì cái ORM/datamapper này làm thế nào.

Ví dụ đơn giản như tôi muốn lưu user vào database, cần validation khác biệt giữa regular user với admin (thêm group=admin, username có thể có 1 2 ký tự thay vì regular user bắt buộc phải có 6,....) nhưng ngoài elixir có thằng ecto ra thì tôi chưa gặp thằng thư viện nào của ngôn ngữ nào đoạn này nó làm dễ dàng cả (lưu ý là validation phải tính cả unique constraint, error messages các kiểu.

Nếu không hỗ trợ từ mức thư viện thì không phải là trời sập, tự viết cũng được, nhưng thêm code (glue code, adhoc code) là thêm bug, là thêm convention, là thêm document (hoặc trao đổi nhóm), là phải nhớ thêm một đoạn "exception" này... Project lớn dần mấy cái này càng tích luỹ thêm, càng khó maintain. Cho nên nhiều thằng kêu gào backend khó là vì thế.

Chứ 10 cái tables hay 1000 cái tables mà tất cả chủ yếu là CRUD thì có phức tạp gì.
Đọc cuốn vãi. Bác cho e xin thêm thông tin về thằng elixir với

via vozForums for iPhone
Reply With Quote
  #18  
Old 09-10-2019, 09:10
NLAQ's Avatar
NLAQ NLAQ is offline
Junior Member
 
Join Date: 04-2016
Posts: 22
Re: Mấy thím đi làm lập trình có hay gặp dự án phức tạp không

Quote:
Originally Posted by Nipin View Post
Nếu ngon đủ dùng thì mấy cậu trên đã đíu kêu backend phức tạp. Thiên hạ đã đíu phải cắm đầu vào microservices để tạo clear boundaries.

Mà cậu đọc hiểu có vấn đề à? Post của tôi nói là backend đổi sang thằng ngon thì sẽ thấy đéo phức tạp nữa.

Còn vấn đề với mấy thằng trên thì nhiều, đơn giản như mấy cái class tự thay đổi self state mỗi lần method của nó được gọi từ đâu đó cảm giác đã thốn rồi.

Nhân tiện về mấy dạng ORM/data mapper, các bạn khi chọn một thằng, thì phải đặt câu hỏi là mình thường gặp mấy trường hợp dạng này dạng kia thì cái ORM/datamapper này làm thế nào.

Ví dụ đơn giản như tôi muốn lưu user vào database, cần validation khác biệt giữa regular user với admin (thêm group=admin, username có thể có 1 2 ký tự thay vì regular user bắt buộc phải có 6,....) nhưng ngoài elixir có thằng ecto ra thì tôi chưa gặp thằng thư viện nào của ngôn ngữ nào đoạn này nó làm dễ dàng cả (lưu ý là validation phải tính cả unique constraint, error messages các kiểu.

Nếu không hỗ trợ từ mức thư viện thì không phải là trời sập, tự viết cũng được, nhưng thêm code (glue code, adhoc code) là thêm bug, là thêm convention, là thêm document (hoặc trao đổi nhóm), là phải nhớ thêm một đoạn "exception" này... Project lớn dần mấy cái này càng tích luỹ thêm, càng khó maintain. Cho nên nhiều thằng kêu gào backend khó là vì thế.

Chứ 10 cái tables hay 1000 cái tables mà tất cả chủ yếu là CRUD thì có phức tạp gì.
Em cũng hóng bác chia sẻ thêm ạ.
Reply With Quote
  #19  
Old 09-10-2019, 11:11
Nipin Nipin is offline
Senior Member
 
Join Date: 03-2018
Posts: 1,330
Re: Mấy thím đi làm lập trình có hay gặp dự án phức tạp không

Quote:
Originally Posted by taylqse04184 View Post
Đọc cuốn vãi. Bác cho e xin thêm thông tin về thằng elixir với

via vozForums for iPhone
Quote:
Originally Posted by NLAQ View Post
Em cũng hóng bác chia sẻ thêm ạ.
Phát triển với thằng này ngon ở bốn điểm: Language, framework, library + tool.

Về ngôn ngữ, thằng elixir là ngôn ngữ lập trình hàm, không có class cũng không có mutable variable, cho nên đầu tiên thì đếch phải lo mấy vụ interface, abstract class hay mutability.

Tiếp theo thì mấy cái hàm của elixir thường rất nhỏ, thường chỉ khoảng 10 tới 20 dòng (thực ra thì phần lớn chỉ có 1 2 dòng), rất dễ phân tích đọc hiểu, thường mấy function phức tạp sẽ được tách biệt ra thành một loạt function nhỏ, rồi chain lại bằng pipe operator `|>`.

Phần exception của Elixir đặc biệt tốt, thông báo dễ đọc, thường tôi chỉ cần đọc dòng đầu tiên là biết code lỗi chỗ nào, nhảy tới file đó dòng đó sửa chút là chạy được ngay (đặc biệt sướng nữa là dùng thư viện ngoài thường rất hiếm bug, cho nên phần lớn có thể mặc nhận là lỗi do mình chứ đéo phải lỗi thư viện, mấy thằng kia thì...)

Thêm nữa là nó có hot code reload, lúc dev cảm giác tiện, bấm save là có feedback luôn (mấy thằng khác nếu phải load data nọ file kia, phải kết nối database các kiểu thì đợi móc mồm).

Về framework, công bằng mà nói thì phoenix nó khá là mediocre (nếu so với mấy thằng như rails hay django có nhiều feature hơn, nhiều plugin hơn), bù lại nó có 2 killer feature là phoenix pubsub và phoenix liveview. phoenix pubsub là để thông báo database CRUD events thông qua channel (websocket) cho client, liveview thì là real time intereaction nhưng ở server side... ờ kiểu như realtime chatroom hay cần mấy tính năng này.

Còn mấy thứ như là graphql hay api server thì thằng phoenix nói thật cũng chỉ ở mức decent.

Về library, thì thằng ecto tôi thấy là cái thư viện kết nối với database dễ chịu nhất mà tôi dùng. Query của nó viết bằng macro, check luôn error lúc compile time, đảm bảo vụ query viết ra compile được là chạy ngon (lỗi logic không nói). Cùng một cái table tôi có thể viết form validation cho nhiều trường hợp: ví dụ seed user với register user, change password với change email, tôi có thể đảm bảo chắc chắn là lúc register user thì group đíu thể nào là admin, change password thì username email không đổi... Tất nhiên cái này thì thằng nào cũng làm được (dù là xoá field bằng tay) nhưng vấn đề là làm thế nào. Bonus thêm đoạn handling database contraints (foreign keys, composite unique key) các kiểu đều cùng một chỗ, rất đồng bộ.

Muốn lowlevel hơn chút, thì nó hỗ trợ mấy cái như insert_all, update_all cũng khá, implement mấy thứ như increase counter, upsert hay find_or_create cũng đơn giản.

Về tool, cái này thì càng vui, thằng iex dùng sướng vãi đái. Ờ bạn nào code rails rồi chắc cũng biết cái `rails console`, cái thằng này cũng có tool tương tự (nhưng ngon hơn). Nói chung lúc deadline đến đít, hoặc đơn giản là lười không muốn làm GUI để thêm sửa xoá một vài row trong database (mà vì security + consistency không muốn trực tiếp remote vào database) thì có thể dùng luôn thằng IEx này truy cập vào instance đang chạy gõ lệnh sửa thông tin (dùng các feature có sẵn trong project, hoặc fix code rồi reload code), không khác backdoor, max phê.
Reply With Quote
  #20  
Old 10-10-2019, 11:51
Compton's Avatar
Compton Compton is offline
Senior Member
 
Join Date: 07-2006
Posts: 1,147
Re: Mấy thím đi làm lập trình có hay gặp dự án phức tạp không

Mới chuyển qua làm dev đc khoảng 6 tháng, maintain cả đống pak mỗi cái một kiểu, mở code ra đếch hiểu nó viết gì, mỗi khi nó break, phải nhào vô sửa sao cho nó chạy, có ticket thì vài tiếng xong, có ticket thì mất cả tuần để hiểu rồi sửa vài dòng code, etc. thì có gọi là phức tạp ko thớt?
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +7. The time now is 13:26.
Chịu trách nhiệm nội dung: Bạch Thành Trung © 2019 Công ty TNHH Thật Vi Diệu
ĐC tầng 4, số 6-8 Đường D2, Bình Thạnh, Hồ Chí Minh, Việt Nam - SĐT 0981323799 - MST 0313906593
Giấy phép thiết lập MXH số 334/GP-BTTTT, Ký ngày: 19/08/2019