thảo luận Mấy Framework FE như kiểu Angular, ReactJS làm cho coder rất khổ khi debug

Hôm nay vào check trending framework thấy thằng vue nó tăng dữ luôn mấy bác ơi

https://npmtrends.com/react-vs-vue

1671082118741.png
 
Tôi lướt qua còm men chơi thấy có anh chê phát ngôn: " js thuần nhanh hơn react" là sai nên sẵn tiện muốn mọi người bàn luận thêm về chủ để này...
Cụ thể ý anh bạn react nhanh hơn js về khía cạnh nào? Về delivery cho team hay về performance? Nếu là performance thì tôi k nghĩ react của anh là cái gì đó ghê gớm đâu :D
Trước lướt voz có bác share cái link benchmark nhiều fe framework lắm, có cả mấy cái cổ lỗ ít dùng cơ, và react của anh luôn trong nhóm bét. Dẫn đầu là svelte, hình như chính tác giả svelte còn viết bài chửi react...
 
Tôi lướt qua còm men chơi thấy có anh chê phát ngôn: " js thuần nhanh hơn react" là sai nên sẵn tiện muốn mọi người bàn luận thêm về chủ để này...
Cụ thể ý anh bạn react nhanh hơn js về khía cạnh nào? Về delivery cho team hay về performance? Nếu là performance thì tôi k nghĩ react của anh là cái gì đó ghê gớm đâu :D
Trước lướt voz có bác share cái link benchmark nhiều fe framework lắm, có cả mấy cái cổ lỗ ít dùng cơ, và react của anh luôn trong nhóm bét
Tạo thớt mới đi fen, trong này đang chửi thằng thớt vui
qLzAEIq.png
 
Tôi lướt qua còm men chơi thấy có anh chê phát ngôn: " js thuần nhanh hơn react" là sai nên sẵn tiện muốn mọi người bàn luận thêm về chủ để này...
Cụ thể ý anh bạn react nhanh hơn js về khía cạnh nào? Về delivery cho team hay về performance? Nếu là performance thì tôi k nghĩ react của anh là cái gì đó ghê gớm đâu :D
Trước lướt voz có bác share cái link benchmark nhiều fe framework lắm, có cả mấy cái cổ lỗ ít dùng cơ, và react của anh luôn trong nhóm bét. Dẫn đầu là svelte, hình như chính tác giả svelte còn viết bài chửi react...
:D react là lib js mà lại chê js thuần chậm hơn :D
 
Tôi lướt qua còm men chơi thấy có anh chê phát ngôn: " js thuần nhanh hơn react" là sai nên sẵn tiện muốn mọi người bàn luận thêm về chủ để này...
Cụ thể ý anh bạn react nhanh hơn js về khía cạnh nào? Về delivery cho team hay về performance? Nếu là performance thì tôi k nghĩ react của anh là cái gì đó ghê gớm đâu :D
Trước lướt voz có bác share cái link benchmark nhiều fe framework lắm, có cả mấy cái cổ lỗ ít dùng cơ, và react của anh luôn trong nhóm bét. Dẫn đầu là svelte, hình như chính tác giả svelte còn viết bài chửi react...
React thì nội cái danh tiếng của Facebook cũng khiến nó tạo ra tin tưởng rồi
 
Tôi lướt qua còm men chơi thấy có anh chê phát ngôn: " js thuần nhanh hơn react" là sai nên sẵn tiện muốn mọi người bàn luận thêm về chủ để này...
Cụ thể ý anh bạn react nhanh hơn js về khía cạnh nào? Về delivery cho team hay về performance? Nếu là performance thì tôi k nghĩ react của anh là cái gì đó ghê gớm đâu :D
Trước lướt voz có bác share cái link benchmark nhiều fe framework lắm, có cả mấy cái cổ lỗ ít dùng cơ, và react của anh luôn trong nhóm bét. Dẫn đầu là svelte, hình như chính tác giả svelte còn viết bài chửi react...
React là 1 bước lùi trong thế giới web. Thời đại web trơn mượt 60fps, phản hồi dưới 1/10 giây sẽ ko bao giờ trở lại. :(
 
Nội dung không phù hợp
Trước khi react ra đời thì mọi người vẫn dùng jquery. Giờ thì chỉ trừ mấy trang web đơn giản thì ít người xài jquery.

Mấy trang web có frontend phức tạp mà viết bằng jquery có khi là debug còn phức tạp hơn nhiều so với reactjs đấy. Jquery không kiểm soát luồng với dữ liệu sẽ tạo ra 1 đống rối mù cho xem.

Nếu xem xét mấy thư viện này phải hiểu lịch sử của nó.

Không thì thử svelte framework xem. Đơn giản hơn reactjs nhiều. Nhưng mà svelte sinh sau đẻ muộn nên cộng đồng ít, thư viện không nhiều nên cũng ít người xài.
Jquery là code nhanh nhất rồi đấy, tuy nhiên vì sự tiện lợi này mà dev hay update lung tung. Với code jquery thì hãy đơn giản hóa hết mức mấy ông cứ pattern này nọ vào là nát. Tôi làm dự án mà nó code rejact tôi nhắm chuyển qua jquery chỉ cần 10% thời gian là xong rồi.
 
Jquery là code nhanh nhất rồi đấy, tuy nhiên vì sự tiện lợi này mà dev hay update lung tung. Với code jquery thì hãy đơn giản hóa hết mức mấy ông cứ pattern này nọ vào là nát. Tôi làm dự án mà nó code rejact tôi nhắm chuyển qua jquery chỉ cần 10% thời gian là xong rồi.
@Vipluckystar có con troll ghẻ này fen :bad_smelly:
 
Jquery là code nhanh nhất rồi đấy, tuy nhiên vì sự tiện lợi này mà dev hay update lung tung. Với code jquery thì hãy đơn giản hóa hết mức mấy ông cứ pattern này nọ vào là nát. Tôi làm dự án mà nó code rejact tôi nhắm chuyển qua jquery chỉ cần 10% thời gian là xong rồi.
hợp lý
 
Anh em cho mình hỏi mới tập toẹ nhảy sang vọc FE thì nên học Vue cho dễ hả? :shame:

Mình tự build tool xài thôi chứ chưa có ý định đào sâu. Mà bên Js/Ts tool nào low-code kiểu kéo thả ok nhỉ? Mình muốn làm cái dashboard bind với REST/GraphQL có sẵn để control mấy thứ :byebye:
 
Anh em cho mình hỏi mới tập toẹ nhảy sang vọc FE thì nên học Vue cho dễ hả? :shame:

Mình tự build tool xài thôi chứ chưa có ý định đào sâu. Mà bên Js/Ts tool nào low-code kiểu kéo thả ok nhỉ? Mình muốn làm cái dashboard bind với REST/GraphQL có sẵn để control mấy thứ :byebye:
Làm dashboard với vue thì recommend mấy gói mì ăn liền như element-ui, antdesign-vue, naive-ui.
Nhưng để xài được mấy gói mì ăn liền kia thì fen cũng phải biết cơ bản về css, js rồi mới học sang Vue. Nói chung là phải biết tạo một cái website từ html + css + js nó ra làm sao thì hẵng học sang lib như Vue, React.
qLzAEIq.png
 
Làm dashboard với vue thì recommend mấy gói mì ăn liền như element-ui, antdesign-vue, naive-ui.
Nhưng để xài được mấy gói mì ăn liền kia thì fen cũng phải biết cơ bản về css, js rồi mới học sang Vue. Nói chung là phải biết tạo một cái website từ html + css + js nó ra làm sao thì hẵng học sang lib như Vue, React.
qLzAEIq.png
Nhu cầu của mình là làm cái dashboard để control mấy cái service thôi, bọn nó có REST/GraphQL API và CLI interface. Hiện giờ cứ phải remote vào server gõ lệnh mệt quá nên muốn làm cái UI để bấm bấm cho tiện :shame:
 
Nhu cầu của mình là làm cái dashboard để control mấy cái service thôi, bọn nó có REST/GraphQL API và CLI interface. Hiện giờ cứ phải remote vào server gõ lệnh mệt quá nên muốn làm cái UI để bấm bấm cho tiện :shame:
có mấy cái dashboard làm sẵn á. google thêm
 
Nhưng mà code be tôi gặp gần như ko bao giờ có trường hợp đã gọi tới dòng dưới rồi, mà lại có cách thần kì nào mấy dòng trên lại chạy lai từ đầu cả.

Anh công nhận với tôi ko?

Anh phải hiểu backend là return là 1 giá trị và trả về FE, function ở backend sẽ chạy từ đầu đến cuối và finish.
Còn ở FE thì nó k đơn giản vậy, ở FE hoạt động dựa trên state và tương tác của user. Code ở FE ngoài xử lý logic, thì phần lớn như các listener, các function sẽ lắng nghe sự kiện từ tương tác của user

via theNEXTvoz for iPhone
 
Giả sử các thím code Back end Java gì đó khi đọc code từ trên xuống dưới, ví dụ từ dòng 1 tới dòng 10 các thím sẽ hiểu được chính xác logic và flow của code như thế nào. Kiểu làm việc 1 => làm việc 2 => làm việc 3

Nhưng các Framework front end rất hay có trò kiểu như detect change (Khi có 1 cái gì đó thay đổi thì sẽ render / hoặc chạy lại toàn bộ component)

Ví dụ:
  • Khi state của 1 component trong reactjs thay đổi => component sẽ được render (Toàn bộ các đoạn code component sẽ được chạy lại)
  • Angular cũng tương tự, 1 props nào đó thay đổi thì component cx render lại

Không chỉ vậy việc render lại hay không còn phụ thuộc rất nhiều yếu tố a b c x y z (Ví dụ như dependency array của reactjs sẽ có thể thay đổi hành vi render)

=> Dẫn tới việc các thím mở code lên đọc từ trên xuống dưới của FE sẽ đếch hình dung được chắc chắn 100% luồng code sẽ chạy như nào, khi nào thì luồng nào chạy, và các component con còn nhiều khi ảnh hưởng tới component cha và ngược lại

Tóm gọn lại: Cực kì khó xác định logic flow code + xác định chính xác tất cả các case mà component re-render => Khó debug cực kì

//Ví dụ 2


Để tôi ví dụ cho anh

JavaScript:
function A(props) {
    //logic 1 2 3 4
   
    const { data } = useFetch(url) //Chú ý dòng này
}

Giả sử tôi có 1 component như trên có logic 1 2 3 4. Và ở dòng cuối tôi có gọi 1 customer hook tên là 'useFetch' => Nếu trong cái hook 'useFetch' của tôi có gọi hàm setState => Re-render và như thế logic 1 2 3 4 sẽ chạy lại đúng ko???

Nhưng mà code be tôi gặp gần như ko bao giờ có trường hợp đã gọi tới dòng dưới rồi, mà lại có cách thần kì nào mấy dòng trên lại chạy lai từ đầu cả.

Anh công nhận với tôi ko?

Nọ tôi đọc cái thread này mà quên không vào để comment
Anh thread nói cũng có ý đúng đấy. Tuy nhiên không phải các ngôn ngữ backend không có mấy cái flow lạ đâu. Vấn đề cốt lõi ở đây cốt lõi lại là bài toán Events và Hooks nó gây ra việc nhảy flow code

Từng đụng vào 1 cái code PHP nó dạng như thế này

event.raise("EVENT1");

Sau đó event lifecycle invoke tất cả các callback, synchronously, tuần tự, theo thứ tự callback được register

Khốn nạn ở chỗ mặc dù trên cùng 1 tread, tuần tự nhưng chỉ follow debugger thì phải chạy xuống 300 tầng stack mới đến đoạn InvokeRegisteredFn(payload) trong khi thự tự register callback thì lộn xộn lung tung. Và nếu raise event tiếp theo trong callback thì nó cũng như kia thôi

Hoặc với .NET Core thứ tự regiser các middleware cũng là convention ngầm hiểu
app.UseRouting(); // app.UseRequestLocalization(); // app.UseCors(); app.UseAuthentication(); app.UseAuthorization(); // app.UseSession();
Sai thứ tự là tạch app luôn hoặc app cư xử không như mong đợi

Khi bạn hook code của mình hook vào lifecycle của người khác thì bắt buộc phải chấp nhận tư tưởng của họ, kể cả khi tư tưởng 2 bên có bất đồng
 
Tôi lướt qua còm men chơi thấy có anh chê phát ngôn: " js thuần nhanh hơn react" là sai nên sẵn tiện muốn mọi người bàn luận thêm về chủ để này...
Cụ thể ý anh bạn react nhanh hơn js về khía cạnh nào? Về delivery cho team hay về performance? Nếu là performance thì tôi k nghĩ react của anh là cái gì đó ghê gớm đâu :D
Trước lướt voz có bác share cái link benchmark nhiều fe framework lắm, có cả mấy cái cổ lỗ ít dùng cơ, và react của anh luôn trong nhóm bét. Dẫn đầu là svelte, hình như chính tác giả svelte còn viết bài chửi react...
Mình dùng thử sveltekit, phải công nhận tốc độ code nhanh hơn và debug cũng nhanh hơn hẳn
 
Giả sử các thím code Back end Java gì đó khi đọc code từ trên xuống dưới, ví dụ từ dòng 1 tới dòng 10 các thím sẽ hiểu được chính xác logic và flow của code như thế nào. Kiểu làm việc 1 => làm việc 2 => làm việc 3

Nhưng các Framework front end rất hay có trò kiểu như detect change (Khi có 1 cái gì đó thay đổi thì sẽ render / hoặc chạy lại toàn bộ component)

Ví dụ:
  • Khi state của 1 component trong reactjs thay đổi => component sẽ được render (Toàn bộ các đoạn code component sẽ được chạy lại)
  • Angular cũng tương tự, 1 props nào đó thay đổi thì component cx render lại

Không chỉ vậy việc render lại hay không còn phụ thuộc rất nhiều yếu tố a b c x y z (Ví dụ như dependency array của reactjs sẽ có thể thay đổi hành vi render)

=> Dẫn tới việc các thím mở code lên đọc từ trên xuống dưới của FE sẽ đếch hình dung được chắc chắn 100% luồng code sẽ chạy như nào, khi nào thì luồng nào chạy, và các component con còn nhiều khi ảnh hưởng tới component cha và ngược lại

Tóm gọn lại: Cực kì khó xác định logic flow code + xác định chính xác tất cả các case mà component re-render => Khó debug cực kì

//Ví dụ 2


Để tôi ví dụ cho anh

JavaScript:
function A(props) {
    //logic 1 2 3 4
   
    const { data } = useFetch(url) //Chú ý dòng này
}

Giả sử tôi có 1 component như trên có logic 1 2 3 4. Và ở dòng cuối tôi có gọi 1 customer hook tên là 'useFetch' => Nếu trong cái hook 'useFetch' của tôi có gọi hàm setState => Re-render và như thế logic 1 2 3 4 sẽ chạy lại đúng ko???

Nhưng mà code be tôi gặp gần như ko bao giờ có trường hợp đã gọi tới dòng dưới rồi, mà lại có cách thần kì nào mấy dòng trên lại chạy lai từ đầu cả.

Anh công nhận với tôi ko?
Tôi đang muốn đổi qua BE NodeJs đây, code FE nhiều thứ vãi cả l, nào CSS, HTML, Dom, mấy cái đó ông nào cũng kêu dễ vcl nhưng tôi cá 100% không ông nào đủ chuyên sâu mà làm không cần gg mấy cái đó. Nó nhiều vcl. Đã vậy còn UX, UI animation, SEO, version của browser....

Thà về BE làm cmnr, khó mỗi thuật tuán với CSDLnhưng động não chứ không phải GG từng cái từng cái.
 
Back
Top