Mấy thím đi làm lập trình có hay gặp dự án phức tạp không - Page 3 - 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
  #21  
Old 10-10-2019, 14:47
taylqse04184 taylqse04184 is online now
Junior Member
 
Join Date: 01-2015
Posts: 23
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
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.
Những cái này Rails cũng có mà bác, ActionCable, với lại những cái tiện của nó e cũng thấy rails có tất. đến giờ vẫn chưa biết nó hơn rails ở điểm nào. Rails thì e thấy ngon, chỉ có điều chạy chậm thôi, nó mà khắc phục được điểm này thì perfect. Nhưng khó
Reply With Quote
  #22  
Old 11-10-2019, 17:29
Robin Phan Persie Robin Phan Persie is offline
Senior Member
 
Join Date: 05-2013
Posts: 207
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ì.
Hihi dễ thế á, k cần tới 1000 bảng đâu, vậy thử làm việc với 3 đối tượng thôi được k
Tưởng tượng Crypto nhé, 3 bảng IntradayTransactions, CurrentInfo, HistoricalInfo, 1 bảng danh mục Lưu như BTC, ETH...
IntradayTransactions 8k bản ghi 1 ngày
Current thì chỉ 1 bản ghi cho thông tin hiện tại, update mỗi khi có Intraday record mới
Historical 1 mỗi ngày lưu 1 bản ghi Current vào cuối ngày

Công việc đơn giản lắm, chỉ ghi và đọc là chính
Ghi: Như thông tin trên thì lệnh insert 1 ngày cho 1 mã tầm 8k, Nếu có 100 mã chắc là 800k records rồi, chục bản ghi mỗi giây, 8tr records cho 10 ngày và 270tr records cho 1 mã cho 1 năm, lưu giữ liệu 10 năm cho ngắn

Đọc: Lấy đủ thông tin cơ bản nhất, Tên mã, giá mở/đóng, giá cao nhất/thấp nhất trong thời điểm cho dễ (OHLC), data để vẽ biểu đồ mà
- Group theo 1/3/5/15/30/60 phút, hoặc số phút người dùng tự nhập
- Group theo 1 ngày, 1 tuần, 1 tháng, 3 tháng, 6 tháng, 1 năm
- Thông tin đẩy về realtime, mục này khó quá thì thôi

Cơ bản thế thôi, chả có gì cao siêu, bạn có gợi ý gì giúp mình không?!

Kiểu như vậy
https://www.investing.com/crypto/bitcoin/btc-usd-chart

Bên mình đang cần người, mong gặp được nhân tài ở đây


// edit: tí quên, phục vụ tầm 100k users cùng lúc và tầm nhìn 1tr, nên cần lưu ý thêm read/request

Last edited by Robin Phan Persie; 11-10-2019 at 17:32.
Reply With Quote
  #23  
Old 11-10-2019, 22:16
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 Robin Phan Persie View Post
Hihi dễ thế á, k cần tới 1000 bảng đâu, vậy thử làm việc với 3 đối tượng thôi được k
Tưởng tượng Crypto nhé, 3 bảng IntradayTransactions, CurrentInfo, HistoricalInfo, 1 bảng danh mục Lưu như BTC, ETH...
IntradayTransactions 8k bản ghi 1 ngày
Current thì chỉ 1 bản ghi cho thông tin hiện tại, update mỗi khi có Intraday record mới
Historical 1 mỗi ngày lưu 1 bản ghi Current vào cuối ngày

Công việc đơn giản lắm, chỉ ghi và đọc là chính
Ghi: Như thông tin trên thì lệnh insert 1 ngày cho 1 mã tầm 8k, Nếu có 100 mã chắc là 800k records rồi, chục bản ghi mỗi giây, 8tr records cho 10 ngày và 270tr records cho 1 mã cho 1 năm, lưu giữ liệu 10 năm cho ngắn

Đọc: Lấy đủ thông tin cơ bản nhất, Tên mã, giá mở/đóng, giá cao nhất/thấp nhất trong thời điểm cho dễ (OHLC), data để vẽ biểu đồ mà
- Group theo 1/3/5/15/30/60 phút, hoặc số phút người dùng tự nhập
- Group theo 1 ngày, 1 tuần, 1 tháng, 3 tháng, 6 tháng, 1 năm
- Thông tin đẩy về realtime, mục này khó quá thì thôi

Cơ bản thế thôi, chả có gì cao siêu, bạn có gợi ý gì giúp mình không?!

Kiểu như vậy
https://www.investing.com/crypto/bitcoin/btc-usd-chart

Bên mình đang cần người, mong gặp được nhân tài ở đây


// edit: tí quên, phục vụ tầm 100k users cùng lúc và tầm nhìn 1tr, nên cần lưu ý thêm read/request
Trả được bao nhiêu tiền, đầu tư server được tầm bao nhiêu tiền?

p/s: ờ server khoẻ ở đây là nói phục vụ 1 triệu thằng, còn cái việc đọc record realtime thì tôi đéo thấy vấn đề gì, miễn là các bạn dùng đúng ngôn ngữ (mấy thằng for loop đủ nhanh), và lưu tất cả thông tin vào trên memory (vụ cache thế nào thì phải xem kỹ yêu cầu, nhưng tôi thấy là nếu mọi người cùng một quyền thì 1 người hay 1M người thì cũng chỉ tính vài lần theo range thôi chứ không phải tính đi tính lại từng người).

Last edited by Nipin; 11-10-2019 at 22:29.
Reply With Quote
  #24  
Old 12-10-2019, 00:35
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
Những cái này Rails cũng có mà bác, ActionCable, với lại những cái tiện của nó e cũng thấy rails có tất. đến giờ vẫn chưa biết nó hơn rails ở điểm nào. Rails thì e thấy ngon, chỉ có điều chạy chậm thôi, nó mà khắc phục được điểm này thì perfect. Nhưng khó
Ờ nếu nói có thì thằng nào chả có, cơ bản là có như thế nào thôi. Bên elixir/phoenix thì đã từng có showcase là broadcast 2M websockets từ vài năm trước, thời gian render cho mỗi request thì toàn dưới 1ms thay vì 20~50ms như bên rails.

Nhân tiện thì có cái demo: https://dennisbeatty.com/2019/04/24/...-liveview.html
Reply With Quote
  #25  
Old 14-10-2019, 16:40
Robin Phan Persie Robin Phan Persie is offline
Senior Member
 
Join Date: 05-2013
Posts: 207
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
Trả được bao nhiêu tiền, đầu tư server được tầm bao nhiêu tiền?

p/s: ờ server khoẻ ở đây là nói phục vụ 1 triệu thằng, còn cái việc đọc record realtime thì tôi đéo thấy vấn đề gì, miễn là các bạn dùng đúng ngôn ngữ (mấy thằng for loop đủ nhanh), và lưu tất cả thông tin vào trên memory (vụ cache thế nào thì phải xem kỹ yêu cầu, nhưng tôi thấy là nếu mọi người cùng một quyền thì 1 người hay 1M người thì cũng chỉ tính vài lần theo range thôi chứ không phải tính đi tính lại từng người).
1 vài góp ý nhỏ là việc đọc ghi trên cùng 1 đối tượng với tần suất cao là cực kỳ phức tạp, server xin tới đâu cũng bị giới hạn tốc độc truy suất, 1 tỷ bản ghi nó khác 1 triệu bạn ạ. Còn định dùng ngôn ngữ để for loop cho việc group số lượng lớn bản ghi thì đúng là chỗ tôi chưa ai dám thử nghĩ đến

Hihi vậy công ty không đủ khả năng trả lương cho bạn rồi
Reply With Quote
  #26  
Old 14-10-2019, 18:00
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 Robin Phan Persie View Post
1 vài góp ý nhỏ là việc đọc ghi trên cùng 1 đối tượng với tần suất cao là cực kỳ phức tạp, server xin tới đâu cũng bị giới hạn tốc độc truy suất, 1 tỷ bản ghi nó khác 1 triệu bạn ạ. Còn định dùng ngôn ngữ để for loop cho việc group số lượng lớn bản ghi thì đúng là chỗ tôi chưa ai dám thử nghĩ đến

Hihi vậy công ty không đủ khả năng trả lương cho bạn rồi
.... dm cái thằng thần kinh. Mồm thì nói cả năm mới có 270 triệu bản ghi, mà là 100 cái coin riêng biệt, hay nói cách khác mỗi coin chỉ có triệu cái. Giờ lại góp ý truy xuất 1 tỉ lần, lôi cái tỉ lần ấy từ đít mẹ mày ra à?

Đã thế yêu cầu chỉ là query mỗi ngày, hay nói cách khác chỉ cần lưu 3650 cái entries cho 10 năm (mỗi ngày thì lưu vào một cái plaintext file riêng).

Lại còn hạn chế tốc độ truy xuất =)) Map hết con mẹ nó lên ram rồi thì hạn chế cái gì truy xuất?

Lại còn for loop, dm nó dữ liệu ở đây là dạng sorted by time, tìm kiếm thì đơn giản là dùng binary tree đéo tốn bao nhiêu thời gian cả.

Lại nói đéo phải là mỗi thằng query đến lại tính toán một lượt, hay mỗi lần cập nhật dữ liệu lại phải chạy vòng for tính toán lại giá trị trung bình, có đầy kiểu cache + accumulate.

Khó vụ 1 triệu thằng truy xuất cùng một cái server? Khó đéo gì thằng phoenix nó có demo broadcast 2M connections rồi, tức là đéo có hạn chế kẹc gì như mày tưởng tượng:
https://phoenixframework.org/blog/th...et-connections

Kết: bài toán đơn giản vkl mà đéo hiểu muốn lên mạng thể hiện cái gì? Độ ngu dốt thiếu hiểu biết của bản thân?
Reply With Quote
  #27  
Old 14-10-2019, 19:42
Robin Phan Persie Robin Phan Persie is offline
Senior Member
 
Join Date: 05-2013
Posts: 207
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
.... dm cái thằng thần kinh. Mồm thì nói cả năm mới có 270 triệu bản ghi, mà là 100 cái coin riêng biệt, hay nói cách khác mỗi coin chỉ có triệu cái. Giờ lại góp ý truy xuất 1 tỉ lần, lôi cái tỉ lần ấy từ đít mẹ mày ra à?

Đã thế yêu cầu chỉ là query mỗi ngày, hay nói cách khác chỉ cần lưu 3650 cái entries cho 10 năm (mỗi ngày thì lưu vào một cái plaintext file riêng).

Lại còn hạn chế tốc độ truy xuất =)) Map hết con mẹ nó lên ram rồi thì hạn chế cái gì truy xuất?

Lại còn for loop, dm nó dữ liệu ở đây là dạng sorted by time, tìm kiếm thì đơn giản là dùng binary tree đéo tốn bao nhiêu thời gian cả.

Lại nói đéo phải là mỗi thằng query đến lại tính toán một lượt, hay mỗi lần cập nhật dữ liệu lại phải chạy vòng for tính toán lại giá trị trung bình, có đầy kiểu cache + accumulate.

Khó vụ 1 triệu thằng truy xuất cùng một cái server? Khó đéo gì thằng phoenix nó có demo broadcast 2M connections rồi, tức là đéo có hạn chế kẹc gì như mày tưởng tượng:
https://phoenixframework.org/blog/th...et-connections

Kết: bài toán đơn giản vkl mà đéo hiểu muốn lên mạng thể hiện cái gì? Độ ngu dốt thiếu hiểu biết của bản thân?
K cùng đẳng cấp nói chuyện nó khó lắm :v

Sent from my iPhone using vozForums
Reply With Quote
  #28  
Old 14-10-2019, 20:12
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 Robin Phan Persie View Post
K cùng đẳng cấp nói chuyện nó khó lắm :v

Sent from my iPhone using vozForums
Tóm lại là đéo cãi được. Nếu là mấy thằng học cntt từ trường ra tôi còn có thể chửi mấy thằng mất gốc, nhưng loại như cậu chắc là webshit chuyển từ đâu đến, đéo có kiến thức cơ bản.

Thằng nào từng tham gia qua mấy trò như olympic tin học hay acm/icpc đều biết là O(n) thì một tỉ không là vấn đề, O(nlogn) thì một triệu không là vấn đề, thời pentium 4 tôi còn có thể làm mấy bài dạng đó trong vòng 0 chấm mấy giây.

Mà thời đó ram cũng đéo thừa thãi như bây giờ, giờ server ram 128GB rẻ thối, đi thuê cũng chỉ hơn chục củ một tháng, latency lại thấp, cực chẳng đã phải lưu ra hard disk thì ssd giờ cũng nhanh vãi ra rồi, cái đống "big data" của cậu chắc nó save/load trong vòng chục giây đổ lại. Nhiều thằng data có mấy triệu bản, có map hết cỡ cũng chỉ có vài chục GB ram mà cứ nghĩ như mình "big" lắm, rõ tấu hài.
Reply With Quote
  #29  
Old 14-10-2019, 21:34
deolamgicungbibanlasao's Avatar
deolamgicungbibanlasao deolamgicungbibanlasao is online now
Đã tốn tiền
 
Join Date: 08-2013
Location: /home/chickie8x/trash
Posts: 1,277
Re: Mấy thím đi làm lập trình có hay gặp dự án phức tạp không

Vào đây xem các cao thủ chém sướng vãi mặc dù chả hiểu đc bao nhiêu

Gửi từ Xiaomi MI 8 Lite bằng vozFApp
Reply With Quote
  #30  
Old 16-10-2019, 16:14
karenshii karenshii is offline
Member
 
Join Date: 10-2011
Posts: 59
Re: Mấy thím đi làm lập trình có hay gặp dự án phức tạp không

các cao nhân chém cao siêu quá, đọc không hiểu lắm
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 12:32.
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