Bermula dengan Pembangunan Web Fullstack
Hari ini, moden pembangunan stack penuh sangat popular di kedua-dua agensi kecil dan syarikat besar dengan pasukan teknis yang berdedikasi. Jurutera web stack penuh bekerja pada seluruh teknologi web termasuk frontend, backend, dan pengurusan pelayan.
Ramai orang berpendapat bahawa timbunan penuh hanya membawa kepada "baja semua perdagangan, tuan tidak ada". Dari sudut pandangan tertentu ini mungkin benar, namun skillet hanya sama pentingnya dengan apa yang dapat dicapai dengannya. Banyak stack penuh devs menawarkan nilai kerana mereka boleh mengambil idea dari konsep untuk dilancarkan, dan memahami sepenuhnya setiap langkah proses.
Sekiranya anda berfikir pergi ke laluan tumpukan penuh, maka artikel ini adalah untuk anda. Saya akan menerangkan keperluan umum pemaju stack penuh, apa peranan yang diperlukan, dan bagaimana skillet boleh digunakan untuk freelancers / kontraktor yang ingin bekerja secara langsung sama ada untuk klien atau dalam projek mereka sendiri.
Asas Stack Penuh
Pembangunan stack penuh moden telah datang jauh, kerana teknologi web telah berubah banyak. Keperluan tindanan penuh harus digunakan sebagai panduan untuk mempertimbangkan berikut. Secara umumnya, "timbunan" mewakili teknologi yang berjalan serentak untuk membuat kerja laman web. Ini bermakna kod frontend, kod backend, sistem pangkalan data, dan platform pelayan web + OS untuk pelayan.
Prinsip asas pembangunan penuh adalah untuk memahami semua aspek membina sebuah laman web. Ini tidak bermakna pengetahuan reka bentuk atau UI / UX berfungsi, walaupun itu dapat meningkatkan daya maju dan kualiti kerja anda.
- Dasar-dasar frontend termasuk HTML / CSS dan JavaScript, kemungkinan besar dengan a rangka kerja, seperti Angular atau React.
- Untuk bahasa backend anda akan mahu memilih sesuatu yang boleh digabungkan dengan sistem pangkalan data. PHP / MySQL adalah yang paling biasa dan termudah untuk belajar kerana ia menguasai banyak enjin CMS seperti WordPress. Juga LAMP timbunan tidak dapat dinafikan bahawa timbunan web yang paling popular hari ini.
- Pengetahuan pelayan mungkin semudah atau terperinci seperti yang anda suka. Asas-asas mutlak akan menjadi pengetahuan tentang program pelayan seperti Apache ditambah dengan pangkalan data seperti MySQL atau PostgreSQL.
- Anda mungkin pergi lebih jauh untuk memasukkan pengetahuan tentang memasang pelayan mel, atau alat prestasi, seperti memcached atau Varnish.
Penyusun stack penuh sepatutnya berfungsi dalam ketiga-tiga bidang dengan pengetahuan yang cukup untuk melancarkan laman web secara bebas, dan tanpa banyak bantuan dari orang lain.
Kedalaman Teknikal Pengetahuan
Persoalan besar mengenai pembangunan stack penuh ialah berapa jauh masuk ke setiap kawasan. Adakah jurutera stack penuh benar-benar pernah menjadi tuan apa-apa? Ada yang berpendapat bahawa ia mungkin, tetapi yang tidak mungkin menjadi tumpuan penuh.
Kebanyakan syarikat ingin menyewa jurutera stack penuh yang mempunyai sedikit pengetahuan di mana-mana. Jurutera ini mungkin pakar dalam satu kawasan, tetapi mereka dapat mengisi sebarang peranan apabila diperlukan.
Devs yang baru memulakan laluan ini sepatutnya mainan di semua bidang pembelajaran "hanya cukup" untuk menyelesaikan masalah apabila mereka muncul. Ini memberikan tafsiran dunia nyata kepada teknologi untuk melihat bagaimana masalah yang berlainan berlaku untuk projek-projek sebenar.
Manfaat terbesar pengekalan stack penuh adalah keupayaan untuk membina aplikasi anda sendiri tanpa bekerja untuk orang lain.
Jika anda belajar setiap peringkat proses pembangunan maka anda boleh melakukan segala-galanya sendiri. Anda tidak perlu menjadi tuan rumah PHP untuk membina aplikasi Laravel tersuai. Dan anda tidak perlu menjadi guru JavaScript untuk membuat navigasi jatuh turun fleksibel terutama sekarang bahawa kami mempunyai kod sumber terbuka yang begitu banyak yang terdapat di web.
Jadi sejauh mana anda perlu pergi ke mana-mana kawasan ini? Ini sepenuhnya terpulang kepada anda, dan jawapan anda mungkin akan berubah dari semasa ke semasa.
Tetapi apabila mula mulanya, hanya pergi cukup jauh untuk melaksanakan apa yang telah anda pelajari ke dalam projek sebenar. Apabila anda bertemu dengan sesuatu yang anda tidak faham, gunakannya sebagai peluang untuk pergi lebih mendalam, dan ketahui lebih lanjut mengenai subjek tertentu.
Memilih bahasa
Ia adalah sedikit teka-teki untuk pemaju baru untuk memilih teknologi yang hendak dipelajari. Mendapatkan keperluan dari jalan, HTML dan CSS benar-benar diperlukan. JavaScript juga merupakan keperluan, tetapi anda tidak perlu menganggap diri anda tuan JS. Anda harus berminat untuk mempelajari lebih daripada sekadar JavaScript biasa.
Kebanyakan devs belajar jQuery juga, tetapi rangka seperti React, Ember, Angular, Vue, atau Backbone semuanya menawarkan proses yang lebih mudah untuk membina aplikasi web berskala penuh.
Ia mungkin menyelam pembelajaran yang lebih mendalam kesan JavaScript yang mewah, seperti animasi, tetapi mereka benar-benar pilihan. Seorang pemaju stack penuh harus tahu cukup untuk mendapatkan pekerjaan itu, dan bergerak dari situ.
Pilihan bahasa backend kurang mengenai kelebihan teknikal, dan lebih banyak tentang keselesaan. Kebanyakan programmer menyedari bahawa Python adalah bahasa yang lebih serba boleh daripada PHP, Walau bagaimanapun kebanyakan laman web berjalan pada pelayan PHP. Ini menjadikan PHP bahasa yang bernilai kepada lebih banyak syarikat.
Pilih bahasa yang sesuai dengan keperluan anda, atau menawarkan prospek yang paling besar. Perlu diingat juga anda tidak terjebak dengan satu bahasa backend selama-lamanya. Jika anda bermula dengan Ruby tetapi beralih kepada Python anda tidak akan kehilangan apa-apa dalam proses itu.
Walau bagaimanapun, saya mengesyorkan bahawa sebaik sahaja anda mencari bahasa backend yang anda suka, huraikan lebih mendalam dengan bahasa itu, dan mengambil rangka kerja yang berkaitan. PHP mempunyai Laravel, Ruby mempunyai Rails, dan Python mempunyai Django - di antara banyak pilihan lain. Rangka kerja ini akan mempercepat proses pembangunan anda, dan membantu anda dengan betul menyusun aplikasi anda.
Pangkalan data dan pelayan
Memilih enjin pangkalan data datang kepada keperluan projek dan timbunan pelayan. PHP sering berfungsi dengan MySQL, jadi itu pilihan yang paling disukai. The dua susunan web terbesar hari ini LAMP (Linux-Apache-MySQL-PHP) dan MEAN (MongoDB-ExpressJS-AngularJS-Node.js).
Kebanyakan syarikat hosting menawarkan LAMP dari permulaan tanpa persediaan yang diperlukan. Tetapi penyelesaian khusus seperti Ocean Digital membolehkan anda menjalankan hampir apa-apa dengan gris siku kecil. Anda dapat mencari lebih banyak tumpahan web pada senarai ini, atau dengan mencari di dalam talian.
Pilihan pangkalan data anda selalunya akan terikat kepada bahasa backend anda. Python dilengkapi dengan sokongan SQLite secara lalai, dan RoR devs biasanya boleh bekerja dengan apa-apa. Dan dengan jujur, bahasa mana pun biasanya boleh berfungsi dengan pangkalan data mana pun.
Tetapi anda ingin memilih sesuatu yang cukup umum untuk digunakan dalam majoriti projek web. SQL adalah bahasa umum, dan ia menggunakan kebanyakan sintaks yang sama di semua enjin pangkalan data. Anda akan mendapati perbezaan dalam persediaan meja & pentadbiran, tetapi ini biasanya kecil.
Di luar pangkalan data, berikut adalah beberapa topik jejak pelayan teknikal yang mungkin anda ingin pelajari.
- CDN dan hosting kandungan
- Pemasangan perisian & kemas kini perisian
- Sambungan pelayan terbaik untuk pancang lalu lintas & masa beban
- Penyelesaian caching untuk pertanyaan pangkalan data dan storan sistem fail
- Backup automatik pangkalan data dan fail rata, atau cakera pengimejan backup
- Persediaan HTTPS dengan pengurusan domain (pelayan DNS, rekod CNAME, dll.)
- Mata pelajaran yang lebih terperinci, seperti e-mel, microservices, dan mengimbangi beban
Salah satu cara terbaik untuk belajar ialah tinkering dengan pelayan semasa anda membina projek. Dapatkan asas VPS akaun, dan cuba buat susunan sendiri. VPS ini adalah persekitaran pelayan maya yang lengkap di mana anda mempunyai kawalan penuh untuk mengkonfigurasi (atau memusnahkan) segala-galanya. Juga, senarai di atas bukanlah pelan tindakan yang diperlukan untuk semua pemaju stack penuh.
Satu-satunya pengetahuan yang anda perlukan adalah apa yang diperlukan untuk mewujudkan persekitaran pelayan kosong, dan memasang perisian yang diperlukan untuk menjalankan laman web. Dari sana, apa sahaja pengetahuan yang lebih baik. Sekiranya anda mempunyai soalan atau ingin belajar daripada profesional, lihat komuniti Reddit / r / SysAdmin.
The Road Ahead
Jika anda benar-benar ingin belajar pembangunan stack penuh, membuat senarai semua teknologi yang anda ingin pelajari. Dari sana, anda boleh menangani mereka satu demi satu untuk membuat projek amalan anda sendiri untuk menguji apa yang anda pelajari.
Pembangunan web adalah industri yang sentiasa berubah, jadi anda harus sentiasa bersedia untuk belajar lebih lanjut. Uji pelbagai susunan dan bahasa sehingga anda menemui apa yang anda suka. Tetapi sentiasa bersedia untuk lebih mendalam dan menjadi lebih baik!
Adakah pembangunan stack penuh bernilai usaha? Itulah untuk anda membuat keputusan. Tetapi di sini ada beberapa jawatan berkaitan yang mungkin membantu anda memikirkannya.
- Mengenai Legitimasi "Full-Stack" (heapsortjobs.com)
- Jadi, anda mahu menjadi pemaju penuh (rubysteps.com)
- 7 Tips Mengenai Cara Menjadi Pemaju Stack Penuh (usersnap.com)