Các nhà phát triển và kỹ sư lớn tuổi hơn có thể nhớ đến ngăn xếp LAMP💡 và mặc dù nó đã được thiết kế lại, nhưng nếu chúng tôi chia nhỏ mọi thứ về mức cơ bản thì những gì chúng tôi thấy và cần là:
một hệ điều hành
một máy chủ web
Một cơ sở dữ liệu
một ngôn ngữ lập trình
Điều tôi sẽ nói với bạn hôm nay là cách tôi mô phỏng lại ngăn xếp LAMP ở định dạng thay thế :
Ngày nay, tất cả những gì tôi thường nghe là: “Tôi muốn trở thành nhà phát triển thì bắt đầu như thế nào?”, “Tôi muốn trở thành nhà phát triển, tôi cần chiếc máy tính xách tay nào?” hoặc “Tôi có cần mua MacBook mới nhất để trở thành nhà phát triển không?” và thành thật mà nói, nó bắt đầu ảnh hưởng đến tôi.
Không trẻ con , bạn không cần công nghệ mới nhất hay tên lửa🚀 để trở thành nhà phát triển, điều bạn cần là một hệ điều hành có khả năng cài đặt các gói lập trình và có thể biên dịch chúng; bạn thậm chí có thể sử dụng máy tính xách tay cũ của bà bạn. Và bây giờ bạn hỏi: "Làm sao điều này có thể xảy ra được?!"
Chúng ta hãy thực hiện một chuyến đi ngắn về miền ký ức; Gần 3 năm rưỡi trước, tôi bắt đầu mày mò với một chiếc SBC - máy tính bảng đơn r có giá khởi điểm dưới 50E để mua và hiện tại, trên đó, tôi có một máy chủ web, một cơ sở dữ liệu, đang thực hiện hàng trăm mẩu tin lưu niệm trên web mỗi lần. giờ và trên hết, tôi đang nỗ lực phát triển điểm cuối API.
SBC này thậm chí không phải là sản phẩm mới nhất trong dòng sản phẩm của nó và có:
8GB bộ nhớ trong LPDDR4
CPU ARM Cortex-A72 lõi tứ 1,5 GHz (ra mắt năm 2015) - bạn có thể ép xung dễ dàng và an toàn ở tốc độ 2GHz (+mở rộng quạt & tản nhiệt)
Đây là những gì GPT nói về các thông số kỹ thuật này: Các thông số kỹ thuật bạn cung cấp phù hợp với một số loại tác vụ điện toán nhất định nhưng chúng có thể không đủ cho các loại tác vụ khác. Đây là một đánh giá:
ARM Cortex-A72 là một thiết kế bộ xử lý có khả năng thường thấy trong điện thoại thông minh, máy tính bảng và các thiết bị di động khác.
Cấu hình lõi tứ có nghĩa là nó có bốn lõi, cho phép nó xử lý nhiều tác vụ đồng thời hiệu quả hơn.
Tốc độ xung nhịp 1,5 GHz phù hợp cho các tác vụ điện toán có mục đích chung, bao gồm duyệt web, sử dụng phương tiện và các ứng dụng năng suất.
Tuy nhiên, đối với các tác vụ đòi hỏi khắt khe hơn như chơi game, chỉnh sửa video hoặc chạy phần mềm phức tạp, tốc độ xung nhịp cao hơn và có thể nhiều lõi hơn sẽ mang lại hiệu suất tốt hơn. Tóm lại, các thông số kỹ thuật này phù hợp với các tác vụ tính toán từ nhẹ đến trung bình, chẳng hạn như năng suất hàng ngày, duyệt web và sử dụng đa phương tiện. Tuy nhiên, đối với các tác vụ đòi hỏi khắt khe hơn hoặc phù hợp với tương lai, bạn có thể cân nhắc nâng cấp lên hệ thống có nhiều RAM hơn và CPU nhanh hơn.
Tin tôi đi, ngay từ đầu, mức độ nhẹ đến vừa phải là quá đủ, vì vậy với bảng Pi, bạn có thể dễ dàng có một môi trường máy tính để bàn làm việc, trong đó bạn có thể học cách viết mã và không chỉ giao diện người dùng mà thậm chí cả các ngôn ngữ lập trình phụ trợ như Python , c++ (thậm chí còn tiết kiệm năng lượng hơn) hoặc javascript.
Tôi sử dụng cái gì?
Trên Raspberry Pi, tôi đang phát triển mã với:
Máy tính để bàn Ubuntu - nhờ sự hỗ trợ củamáy tính để bàn :
tường lửa
chống virus
phần mềm chống xâm nhập IPS
mạng
quản lý mật khẩu mạnh
VSCode kết nối từ xa với máy chủ
Các tập lệnh Python3 quét web và xây dựng các trang web HTML được thể hiện bằng CSS
yêu cầu
selen
gấu trúc
xử lý song song - concurrent.futures
Javascript kết hợp với PHP ở đây và ở đó.
Các tập lệnh Python3 tự động ghi vào cơ sở dữ liệu Sqlite3 của tôi ở định dạng JSON .
Ứng dụng Flask , một khung web Python nhỏ và nhẹ cung cấp các công cụ và tính năng hữu ích giúp tạo các ứng dụng web bằng Python.
Và cuối cùng là một đoạn mã Javascript gọi điểm cuối Flask - điểm cuối API RESTful
Trong gần 4 năm với chi phí khấu hao chắc chắn là 120E và < 4E mỗi tháng tiền điện🔌.
Để tóm tắt mọi thứ, đây là kiến trúc hệ thống BerryNews:
Các yếu tố chính ở đây là Sử dụng tài nguyên hiệu quả + Ràng buộc sử dụng tài nguyên .
Tại sao phải vung tiền khi bạn có thể viết mã hiệu quả?
Nếu chúng ta tổng hợp mọi thứ lại thì chúng ta sẽ có một bảng như thế này trên một chiếc máy tính 100 đô la:
Loại | Từ khóa |
---|---|
Ngôn ngữ lập trình | Python3, Javascript, PHP, CSS, HTML, SQL |
Định dạng dữ liệu | JSON |
Khung | bình, selen, đồng thời.futures |
Cơ sở dữ liệu | sqlite3 |
Mạng | cấu hình bộ định tuyến, DNS |
An ninh mạng | UFW ( tường lửa ), ClamAV ( chống virus ), Fail2ban ( IPS ), quản lý mật khẩu, Khóa SSH, Let's Encrypt ( chứng chỉ SSL ) |
Linux | Raspberry Pi, Máy tính để bàn Ubuntu, VSCode |
Vì vậy, hãy cho tôi biết, bạn vẫn nghĩ rằng mình cần thông số kỹ thuật máy tính xách tay mới nhất để trở thành nhà phát triển phải không?