Read-only archive. Login and posting are unavailable.
Reply
 
Thread Tools
  #21  
Old 03-08-2018, 18:07
Senior Member
Join Date: 03-2018
Posts: 1,564
Re: Cách học Golang?

Quote:
Originally Posted by it47 View Post
Mình cũng mãn hạn Java, chạy qua code RoR cho vui... Bởi vậy mời nhàn nhã.
Khi làm Java toàn các dự án enterprise chà bá. Code trong dự án cảm thấy mình như con kiến bé tẹo teo.
Sau này ra làm RoR hay Node thì còn đc tự chủ một chú, nhưng sài đao to búa lớn quen rồi, đôi khi gặp các vấn đề rắc rối vẫn mong muốn lôi nó ra xài
Hóa ra cái meme "Learn functional programing" là có thật. Mà kể cũng đúng, nếu quen với kiểu pass immutable data từ function này sang function khác rồi, tự dưng thấy mấy cái Clean Code, Design Pattern, Best Practices của Java chỉ là mấy trò nhảm nhí lòe bịp người thiếu hiểu biết.

Ờ mà bảo học Haskell hay Elm bây giờ khá là làm khó nhau, các bạn có thể thử trước với Elixir hay Clojure để xem xã hội văn minh nó là như thế nào.
Reply With Quote
  #22  
Old 03-08-2018, 22:28
Senior Member
Join Date: 02-2011
Posts: 391
Re: Cách học Golang?

Quote:
Originally Posted by Nipin View Post
Hóa ra cái meme "Learn functional programing" là có thật. Mà kể cũng đúng, nếu quen với kiểu pass immutable data từ function này sang function khác rồi, tự dưng thấy mấy cái Clean Code, Design Pattern, Best Practices của Java chỉ là mấy trò nhảm nhí lòe bịp người thiếu hiểu biết.

Ờ mà bảo học Haskell hay Elm bây giờ khá là làm khó nhau, các bạn có thể thử trước với Elixir hay Clojure để xem xã hội văn minh nó là như thế nào.

bác có thể cho ví dụ về cái này được không   bên FP ko áp dụng mấy cái khái niệm như Design Pattern à bác ?
Reply With Quote
  #23  
Old 04-08-2018, 02:25
Senior Member
Join Date: 03-2018
Posts: 1,564
Re: Cách học Golang?

Quote:
Originally Posted by DeathEater View Post
bác có thể cho ví dụ về cái này được không   bên FP ko áp dụng mấy cái khái niệm như Design Pattern à bác ?
Nói không có thì cũng không phải không có, làm cái vẹo gì chả có pattern. Nhưng cơ bản ở thế giới FP thì DP nó không bị thần thánh hóa lên như mấy thằng Java hay C#, bởi vì cơ bản nó không cần thiết.

Trong FP thì data và logic tách biệt hẳn ra (ờ thằng LISP logic cũng là data, có thể manipulate được, nhưng đây là chuyện khác), data được pass từ function này sang function khác, mỗi function này đọc data, có thể thêm sửa xóa gì gì đó, nhưng thay vì sửa cái data cũ thì nó để nguyên, trả về data mới, data mới này lại được truyền đến một function khác, thằng này lại thêm sửa xóa gì gì đó rồi đẩy cho thằng khác. Quá trình này có thể track được, và hầu như không có side effect (trừ khi làm việc với IO)

OO thì thường không pass data mà pass reference của object, pass vào function thì nó sửa luôn cái object này, cộng thêm việc gọi một cái method của object cũng thay đổi giá trị của object => rất khó theo dõi chuyện dữ liệu của object bị thay đổi lúc nào và bởi ai => phải có design pattern để tạo rule set cho mọi người cùng theo.

p/s: https://vimeo.com/113588389
Reply With Quote
  #24  
Old 04-08-2018, 10:18
RPG29's Avatar
Đã tốn tiền
Join Date: 07-2010
Posts: 1,715
Re: Cách học Golang?

Quote:
Originally Posted by Nipin View Post
Nói không có thì cũng không phải không có, làm cái vẹo gì chả có pattern. Nhưng cơ bản ở thế giới FP thì DP nó không bị thần thánh hóa lên như mấy thằng Java hay C#, bởi vì cơ bản nó không cần thiết.

Trong FP thì data và logic tách biệt hẳn ra (ờ thằng LISP logic cũng là data, có thể manipulate được, nhưng đây là chuyện khác), data được pass từ function này sang function khác, mỗi function này đọc data, có thể thêm sửa xóa gì gì đó, nhưng thay vì sửa cái data cũ thì nó để nguyên, trả về data mới, data mới này lại được truyền đến một function khác, thằng này lại thêm sửa xóa gì gì đó rồi đẩy cho thằng khác. Quá trình này có thể track được, và hầu như không có side effect (trừ khi làm việc với IO)

OO thì thường không pass data mà pass reference của object, pass vào function thì nó sửa luôn cái object này, cộng thêm việc gọi một cái method của object cũng thay đổi giá trị của object => rất khó theo dõi chuyện dữ liệu của object bị thay đổi lúc nào và bởi ai => phải có design pattern để tạo rule set cho mọi người cùng theo.

p/s: https://vimeo.com/113588389
Hay quá cảm ơn bác

Pass kiểu value function to function thế này thì có thể mô phỏng kiểu pass immutable object, trong method thay đổi object thì clone ra object mới rồi trả về không nhỉ?
__________________
Món ngon, deal chất!
https://www.meete.co/
Reply With Quote
  #25  
Old 04-08-2018, 11:09
noneedname's Avatar
Senior Member
Join Date: 08-2011
Posts: 763
Re: Cách học Golang?

Quote:
Originally Posted by Nipin View Post
Nói không có thì cũng không phải không có, làm cái vẹo gì chả có pattern. Nhưng cơ bản ở thế giới FP thì DP nó không bị thần thánh hóa lên như mấy thằng Java hay C#, bởi vì cơ bản nó không cần thiết.

Trong FP thì data và logic tách biệt hẳn ra (ờ thằng LISP logic cũng là data, có thể manipulate được, nhưng đây là chuyện khác), data được pass từ function này sang function khác, mỗi function này đọc data, có thể thêm sửa xóa gì gì đó, nhưng thay vì sửa cái data cũ thì nó để nguyên, trả về data mới, data mới này lại được truyền đến một function khác, thằng này lại thêm sửa xóa gì gì đó rồi đẩy cho thằng khác. Quá trình này có thể track được, và hầu như không có side effect (trừ khi làm việc với IO)

OO thì thường không pass data mà pass reference của object, pass vào function thì nó sửa luôn cái object này, cộng thêm việc gọi một cái method của object cũng thay đổi giá trị của object => rất khó theo dõi chuyện dữ liệu của object bị thay đổi lúc nào và bởi ai => phải có design pattern để tạo rule set cho mọi người cùng theo.

p/s: https://vimeo.com/113588389
Như java bây giờ cũng hỗ trợ fp với rxjava hay project reactor hay Flow trong java 9. Ah câu hỏi e hỏi bác về time seri data bên topic kia chưa thấy bác trả lời, chắc bác k để ý.
__________________
Em không về phố vẫn như xưa
Bàng đỏ lá nhưng mùa xuân vẫn thế
Reply With Quote
  #26  
Old 04-08-2018, 17:23
Member
Join Date: 02-2013
Posts: 63
Re: Cách học Golang?

Quote:
Originally Posted by RPG29 View Post
Hay quá cảm ơn bác

Pass kiểu value function to function thế này thì có thể mô phỏng kiểu pass immutable object, trong method thay đổi object thì clone ra object mới rồi trả về không nhỉ?
được, nhưng có vấn đề về performance, vì tạo/clone object tốn nhiều resource.

OOP và FP ngoài khác nhau ở design pattern (cách code), chọn một ngôn ngữ em nghĩ còn phụ thuộc vào bài toán, cách phân tích và thiết kế hệ thống nữa. Như code một app e-commerce, em thấy dùng OOAD rất là hợp.
Reply With Quote
  #27  
Old 04-08-2018, 20:30
Senior Member
Join Date: 03-2018
Posts: 1,564
Re: Cách học Golang?

Quote:
Originally Posted by noneedname View Post
Ah câu hỏi e hỏi bác về time seri data bên topic kia chưa thấy bác trả lời, chắc bác k để ý.
Không tìm hiểu, không biết rõ cho nên không bình luận... mà tôi đinh ninh là tôi đã trả lời là không biết rồi mà nhỉ? Hay lúc đó bận quá nên quên.
Reply With Quote
  #28  
Old 04-08-2018, 20:38
Senior Member
Join Date: 03-2018
Posts: 1,564
Re: Cách học Golang?

Quote:
Originally Posted by ass no hoa View Post
được, nhưng có vấn đề về performance, vì tạo/clone object tốn nhiều resource.
Dùng immutable object thì phải dùng các data structure đặc biệt cho immutable data, thường thì chỉ tốn gấp rưỡi cho bộ nhớ, performance giảm còn 80 90%, về cơ bản là chấp nhận được cho ease of mind. Tất nhiên mấy cái yêu cầu performance cao kiểu như browser hay OS thì không ai dùng immutable data rồi, nhưng về nhu cầu cơ bản thì cũng không phải là vấn đề.
Reply With Quote
  #29  
Old 11-08-2018, 08:56
Senior Member
Join Date: 02-2013
Posts: 1,068
Re: Cách học Golang?

đùa chứ không biết FP có thọ hơn NoSql không nhỉ? OOP dù sao cũng trưởng thành hơn FP
Reply With Quote
  #30  
Old 11-08-2018, 13:23
Senior Member
Join Date: 03-2018
Posts: 1,564
Re: Cách học Golang?

Quote:
Originally Posted by Ikeda View Post
đùa chứ không biết FP có thọ hơn NoSql không nhỉ? OOP dù sao cũng trưởng thành hơn FP
:facepalm: :facepalm: :facepalm: :facepalm: :facepalm: :facepalm: :facepalm:

Đề nghị google trước khi phát biểu.
Reply With Quote
Reply

« Previous Thread | Next Thread »

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


All times are GMT +7. The time now is 13:25.