Halo, Habr! Saya mempersembahkan kepada Anda terjemahan artikel
"Bagaimana tidak menjadi pengembang yang biasa-biasa saja!"Dushyant Sabharwal. Artikel ini memberikan beberapa tips untuk pemula dan, mungkin, beberapa programmer berpengalaman yang dapat membantu meningkatkan profesionalisme mereka secara signifikan dan mengubah sikap mereka untuk bekerja. Beberapa dari mereka mungkin tampak biasa, tetapi pemula mungkin dapat menemukan sesuatu yang berguna untuk diri mereka sendiri.
Tulis lebih banyak kode
Jika Anda ingin meningkatkan keterampilan Anda dalam pekerjaan apa pun, Anda perlu lebih banyak berlatih - sayangnya, tidak ada solusi. Tidak masalah berapa banyak artikel pemrograman yang Anda baca per hari atau berapa kali sehari Anda membaca dokumentasi - Anda tidak akan mencapai hasil tanpa bekerja dengan tangan Anda sendiri. Pola desain yang tampaknya sulit bagi banyak pemula untuk digunakan akan secara otomatis terbang keluar dari bawah jari Anda ketika Anda berlatih menggunakannya dalam konteks yang berbeda.

Tulis tes
Ketika saya mulai aktif menguji kode saya, saya terkejut dengan ketidaksiapan saya untuk menulis tes kualitas. Tes menulis akan mengajarkan Anda untuk melihat kode Anda dengan cara baru, karena ketika Anda menemukan cara untuk memecahkan kode Anda, Anda kemungkinan besar akan memahami struktur dan logika kode Anda lebih dalam dan menemukan beberapa kesalahan Anda sendiri (bahkan sebelum tes dijalankan, ketika sedang ditulis) dan perhatikan bahwa mungkin ada baiknya menempatkan beberapa bagian kode Anda ke fungsi tambahan atau membuat beberapa fungsi lebih digeneralisasi - dalam beberapa kasus Anda bahkan akan dipaksa untuk melakukan ini jika Anda menemukan bahwa kode Anda tidak dapat diuji.
Mari kita lihat sebuah contoh:
function postData(data) {
boolean valid = true;
//
if (data === undefined) {
valid = false;
}
//
if (!regex(data['email']) {
valid = false;
}
//
if (data['password'].length < 8) {
valid = false;
}
if (valid) {
http
.post(`example.com/user/create`, data)
.then((response) => {
//
this.users.append(response.userid);
})
.catch((error) => {
//
});
} else {
showValidationError();
}
}
postData
: , , .
postData
. , :
function postData(data) {
return http
.post(`example.com/user/create`, data);
}
function validate(data) {
//
if (data === undefined) {
return false;
}
//
if (!regex(data['email']) {
return false;
}
//
if (data['password'].length >= 8) {
return false;
}
return true;
}
function appendUsers(userId) {
this.users.append(response.userid);
}
function main() {
if (validate(data)) {
postData(data)
.then(data => appendToList(data.userId))
.catch(error => handleError(error))
} else {
showValidationError();
}
}
, โ , , .
. , - API, , , , - .
open-source
open-source , , . . . , open-source . , open-source .

-, , , , , . , 100%, - .
, . product manager-, โ , ! , , !
/ . , , , . , , . , , , .

, , API, ( ) . , .
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
,
vue.js. , :
new
? ยซยป ?- ,
el
id
, #
? , , ? data
vue
. ?
, , , .
, . , , , โ ! , . API. , , , .
( , , ) , . . , , API.
. , . , , , .
, , :
hackerrank,
leetcode,
codingame .
, , . stackoverflow, . medium , . github. , , .
-
API , , : ยซ โ . ยป. , . , DRY, , , .. (, ), . , , , , ยซ ยป, .
, , , . , โ , !