Her zaman işlevini yorumla..!!
Bir şey hakkında yorum yapmak temelde birinin bir şeyi yargılamasının veya farklı bir bakış açısı vermesinin bir yoludur , süreçte iyi veya kötü açısından olsun, yorumlara göre buna göre gelişip gelişmeyeceğimizi veya görmezden gelip gelmeyeceğimizi değerlendireceğiz. bize verilen
Ancak, bu yazıda politika hakkında konuşmayacağız, ancak Web Geliştirme konusunda daha teknik ve benim bakış açım, kodumuzu yazarken neden bunu yapmamız gerektiği.
Bu seferki tartışmamızda, kendi oluşturduğumuz bir fonksiyon hakkında yorum yapmanın ne kadar önemli olduğunu, elbette JavaScript'te göreceğiz. Şöyle bir fonksiyonumuz olduğunu hayal edin:
function setLocation(x, y) {
window.location.href = `${x}://${y}`;
}
window.location.href = `${x}://${y}`;
Argümanların açıklaması nedir `x`
ve `y`
? dolduracak mıyız `object`
yoksa `string`
belki bazı özel girdileri doldurabilir miyiz? TypeScript kullandığımız başka bir tür veri mekanizması, çalışma zamanında veya geliştirme sırasında TypeScript'in kendisi tarafından yapılacaktır , peki JavaScript kullansak nasıl olur?
Evet, JavaScript'te (JS) işlevdeki bağımsız değişkenler , IntelliSense düzenleyicisi tarafından veriler ne olursa olsun izin verilecek şekilde görüntülenecektir.`setLocation`
`any`
Temelde görebileceğiniz gibi, burada iki sorun var; Bilgisayar ve İnsan , bilgisayar kodu okuduğunda, belirlediğimiz bağımsız değişken adı ne olursa olsun çalışmaya devam edecek, peki ya İnsan ?
Oluşturduğumuz fonksiyonu bir sonraki geliştiricinin (İnsan) anlaması zor olacaktır çünkü fonksiyona ne göndereceğimizi bilmeden `setLocation`
yorum bırakırsak farklı olur.
// args `x` with data type string, is a protocol
// args `y` with data type string, is a domain name
function setLocation(x, y) {
window.location.href = `${x}://${y}`;
}
Oluşturduğumuz fonksiyon hakkında JSDoc standardına göre yorum yapmaya çalışacağız , yukarıdaki yorumu aşağıdaki gibi değiştireceğiz.
/**
* A function that can be executed on address bar browser
* @param {string} x a host url
* @param {string} y a domain url
*/
function setLocation(x, y) {
window.location.href = `${x}://${y}`;
}
Gerçekten de, IntelliSense , biz onu kullanmak istediğimizde, kullanıcıların bu işlevde neyin gönderilmesi gerektiğini belirlemesine yardımcı olabilir, ancak bu tamamen katı bir şekilde yazılmamıştır.
Bu, özellikle fonksiyonun parametresi olarak bir veri nesnesi göndermemiz gereken bir fonksiyonumuz varsa çok faydalıdır, örneğin, bunun gibi bir fonksiyonumuz var.
/**
* @param {object} fullName
* @param {string} fullName.firstName your first name
* @param {string} fullName.lastName your last name
*/
function overwriteData(fullName) {
return {
firstName: "Adib",
lastName: "Firman",
...fullName
};
}
Her zamanki gibi IntelliSense bize bir ipucu verecek ve bu yaklaşım için daha ilginç olanın
Yukarıdaki resimde IntelliSense'ten gelen talimatlara göre veri gireceğiz elbette editörümüzden bir ipucu alacağız , ilginç değil mi?
Sıradaki soru, yarattığımız tüm fonksiyonlar hakkında yorum yapmalı mıyız? Tabii ki hayır, bunun gibi bir fonksiyon örneği
const sum = (firstNum, secondNum) => firstNum + secondNum;
Çözüm
Nasıl kullanılacağına bağlı olarak fonksiyonumuz hakkında bazı yorumlar yapın, verilen parametreler çok karmaşık mı? veya adlandırma işlevinden ve oluşturulan bağımsız değişkenlerden okunabilir mi?
Ancak, işleve bir yorum verilmesi gerektiğini düşünüyorsanız, bu daha iyidir, çünkü sonraki geliştirici (İnsan) tarafından sürdürülmesini kolaylaştırmak içindir.
Teşekkürler.