Ưu điểm của việc sử dụng một ngăn xếp nhàm chán

Tại sao tôi nghĩ việc chọn một ngăn xếp nhàm chán là quan trọng trong lập trình

Một người đã hỏi tôi một câu hỏi vài ngày trước. Người đó muốn bắt đầu một blog và họ quyết định viết nền tảng của riêng họ cho nó, sử dụng Angular trong giao diện người dùng.

Câu trả lời của tôi là nếu mục tiêu là viết blog, thì họ phải viết ra ý tưởng đó và sử dụng một giải pháp không có giá trị.

Điều đó chắc hẳn đã được đón nhận một cách tệ hại, vì tôi không nhận được phản hồi, nhưng quan điểm của tôi là thế này: nếu bạn muốn tạo một blog và nghiêm túc với nó, thì hãy sử dụng thứ nhàm chán nhất mà bạn có thể tìm thấy. Chắc chắnkhông hoạt động trên cơ sở hạ tầng blog của bạn nếu bạn muốn thực hiện bất kỳ công việc viết blog nghiêm túc nào.

Công nghệ phải đi ra khỏi con đường, bạn chỉ nêntập trung vào nội dung.

Nếu không, bạn sẽ dành phần lớn thời gian rảnh để chỉnh sửa nền tảng blog (điều này - hãy nói rõ -không ai ngoại trừ bạn quan tâm) thay vì viết nội dung. Không ai quan tâm đến cơ sở hạ tầng đó.

Nếu bạn muốn tạo một video, trước tiên bạn có định viết một bản sao YouTube không? Nó có thể xử lý 100 triệu khách truy cập đồng thời không? Nhắc tôi nhớ mọi người muốn viết trò chơi điện tử và bắt đầu xây dựng một công cụ vật lý đầu tiên, không bao giờ kết thúc trò chơi trong quá trình này.

Tôi sử dụng Hugo, một trình tạo trang tĩnh.

Hugo là người tốt nhất đối với tôi vì nó tập trung vào viết blog và đánh dấu. Nó lànhàm chán. Ngôn ngữ tạo mẫu của nó thật nhàm chán. Thật là nhàm chán khi tôi phải chỉnh sửa một cái gì đó, tôi ngủ quên mất. Tôi thích nó.

Tính năng tốt nhất của Hugo là nóNhanh, Tôi nghĩ phần lớn là nhờ vào việc sử dụng Go under the hood. Những ngày này, có vẻ như một tính năng nhàm chán.

“Hãy nhìn Gatsby, nó thật lạ mắt và sáng bóng!”

Gatsby(chỉ được sử dụng như một ví dụ, không có gì chống lại nó) đã quá ưa thích đối với sở thích của tôi, mặc dù đó là một công nghệ tuyệt vời. Tại sao? Nó khiến bạn tập trung quá nhiều vào công nghệ và ít tập trung vào kết quả. Là một nhà phát triển, bạn có thể cảm thấy điều đó thật tuyệt vời, nhưng không phải vậy. React, GraphQL, tất cả đều hơi quá thú vị.

Nó làm tôi nhớ đếnReduxvà mọi người hào hứng về bản demo với tính năng “du hành thời gian”, một tính năng thực sự hữu ích cho việc viết mã hàng ngày [kết thúc trò đùa]. Mọi người vui vẻ quá phức tạp hóa ứng dụng của họ chỉ để sử dụng một công nghệ sáng bóng.

Hãy nói về tìm nạp trước chẳng hạn. Chúng ta có thực sự cần tìm nạp trước khi một trang web tĩnh đã chạy nhanh nhất có thể không? Khách truy cập blog của chúng tôi có yêu cầu nó không? Khuyết điểm là gì? Cái mà có thể sai lầm?

Hãy nhớ định luật Murphy: "Bất cứ điều gì có thể xảy ra sai trái sẽ trở thành sai lầm"

Tôi đã từng nói chuyện với một người bắt đầu viết blog bằng Gatsby chỉ để nhận ra rằng họ không bật hiển thị phía máy chủ, mặc dù họ đã bật tính năng này, điều này khiến blog gần như vô hình với Google (vâng, tôi biết họ thực thi JSđôi khi, nhưng chịu đựng với tôi,dính vào kết xuất phía máy chủ nhàm chán).

Trong một blog trung bình, bạn nhận được trung bình 1,1 / 1,2 lượt xem trang cho mỗi người dùng. Điều này có nghĩa là phần lớn người dùng sẽ truy cập trang web của bạn, có thể là thông qua Google, hãy xem nhanh và bỏ đi. Bạn có thực sự cần tìm nạp trước tất cả các liên kết của mình không? Tại sao lại lãng phí tất cả dữ liệu và năng lượng đó?

Đừng chống lại Gatsby, tôi thực sự thích nó như một công cụ để tạo trang web và ứng dụng.

Quan điểm của tôi là để bắt đầu một blog đơn giản, có lẽ bạn không cần 80% những gì nó làm được. Hãy sử dụng một công cụ đơn giản hơn, một công cụ được tạo ra chỉ để viết blog và chắc chắn không được viết của riêng bạn.

Điều này áp dụng cho các ứng dụng phức tạp hơn. Bạn có nên sử dụng công nghệ mà bạn biết từ 10 năm nay, hay bạn nên nhảy vào công nghệ tuyệt vời mà bạn không biết gì về nó, nhưng mọi người đều nói về nó một cách tuyệt vời? Bạn nên sử dụng Rails hay Elixir? Tôi có nên viết ứng dụng tiếp theo của mình trongTypeScripthay Lý do? C, Đi hay Gỉ?

Rất nhiều giờ công bị mất vĩnh viễn khi chúng ta cùng nhau chuyển từ thư viện cũ sang thư viện mới và từ khuôn khổ cũ sang khuôn khổ mới. Hãy nghĩ về jQuery, Backbone và Ember, cộng với tất cả các gazillions đến trước hoặc sau chúng. Hãy suy nghĩ AngularJS và Angular. Hãy nghĩ đến tất cả các framework PHP ra đời trước khi Laravel gây bão thế giới PHP. Bạn còn nhớ “cuộc cách mạng” NoSQL đã khiến tất cả chúng ta xem xét lại việc sử dụng MySQL để ủng hộ các hệ thống cơ sở dữ liệu linh hoạt hơn và linh hoạt hơn không? Hóa ra SQL vẫn đang phát triển mạnh mẽ.

“Just use MySQL, the boring tech revolution is here” Marty Weiner, Reddit CTO, 2016

Hầu hết các công cụ mà các nhà phát triển coi là tiêu chuẩn ngành được xây dựng bởi các công ty lớn như Google và Facebook và chúng hoàn hảo cho nhu cầu của họ. Một nhóm nhỏ hoặc một nhà phát triển đơn lẻ có thể có cùng nhu cầu, nhưng điều đó có khả năng xảy ra không? Hay tất cả được thúc đẩy bởi áp lực và sự cường điệu của bạn bè? Hay bằng cách tiếp thị?

Điều bạn muốn làm có hoàn toàn có thể đạt được với JavaScript đơn giản vàDOMAPI hoặc bạn có thực sự cần viết lại tất cả ứng dụng của mình trongPhản ứngvà dành nhiều ngày để cố gắng làmWebpacklàm những gì bạn muốn Đôi khi đó là một sự lựa chọn tuyệt vời, đôi khi lại là một sự lựa chọn kém hoàn hảo. Làm việc với các API DOM cảm thấy nhàm chán, nhưng điều đó có thể làm cho ứng dụng của bạn nhanh hơn nhiều, trong khi những người khác trong giới kỹ thuật nói rằng nó sẽ rất lộn xộn, bạn có thể gửi nó trong thời gian ít hơn 10 lần và nó có thể hoạt động tốt hơn gấp 10 lần.

Một quy tắc là bạn biết những cạm bẫy của nền tảng của bạn, cỏ luôn xanh hơn ở phía bên kia của hàng rào và bạn muốn tưởng tượng nền tảng mới hoàn hảo 100%. Điều đó không bao giờ xảy ra, và ma quỷ ở trong các chi tiết.

Những chi tiết mà có thể bạn đã nắm vững trong nhiều năm đầu tư vào đống đó mà giờ đây bạn có vẻ nhàm chán, bởi vì bạn là một kỹ sư! Bạn thích thử thách! Bạn không muốn bỏ lỡ cơ hội học hỏi những điều mới!

Bạn vẫn có thể làm được.

Tôi nghĩ rằng bạn nên luôn thử nghiệm, tạo các dự án phụ, nhưng khi nói đến các nền tảng quan trọng (như nền tảng blog của bạn, điều đó rất quan trọng nếu bạn nghiêm túc với nó), thì công nghệ nhàm chán sẽ tốt hơn. Và hiểu được khái niệm này là một phần của việc trở thành một nhà phát triển cấp cao.


Các hướng dẫn phòng thí nghiệm khác: