იყავი იმპერატიული!!
TL;DR: ფუნქციები გაურკვეველი სახელებით მალავს განზრახვას და აბნევს მკითხველს. გამოიყენეთ აღწერითი, მოქმედებაზე ორიენტირებული სახელები.
პრობლემები
- გაურკვეველი ფუნქციის მიზანი
- გაზრდილი შემეცნებითი დატვირთვა
- შეცდომაში შემყვანი კონტექსტი
- შემცირებული წაკითხვა
- რთული თანამშრომლობა
- ფარული ფუნქციონირება
გადაწყვეტილებები
- გამოიყენეთ მოქმედებაზე ორიენტირებული ზმნები
- გააკეთეთ სახელები აღწერით
- ასახეთ ფუნქციის მიზანი
- მოერიდეთ ზოგად ტერმინებს
- მიეცით მნიშვნელოვანი კონტექსტი
- მკაფიოდ გამოხატეთ ერთი პასუხისმგებლობა
- შეადარეთ მოქმედება შედეგს
რეფაქტორინგი
https://hackernoon.com/improving-the-code-one-line-at-a-time
კონტექსტი
ზოგადი ტერმინებით დასახელებული ფუნქციები მკითხველს აიძულებს ჩაძირონ განხორციელებაში, რათა გაიგონ მათი ქცევა.
ეს კარგავს დროს და ზრდის შეცდომების შანსს.
დასახელება კიდევ უფრო მნიშვნელოვანი ხდება დამოუკიდებელ ფუნქციებთან მუშაობისას, სადაც კლასის სახელი არ იძლევა დამატებით კონტექსტს.
ეს საკითხი პირდაპირ კავშირშია „ უთხარი, არ იკითხო“ პრინციპს .
იმის ნაცვლად, რომ გამოაშკარავდეს ორაზროვანი ქცევები, რომლებიც აიძულებს აბონენტს დაასკვნას ფუნქციონალობა, იმპერატიული სახელები გადმოსცემს ზუსტ მოქმედებას, ხელმძღვანელობს მკითხველს კოდის შემოწმების გარეშე.
როდესაც თქვენ ასახელებთ ფუნქციებს აღწერილობით, თქვენ აღმოფხვრის არასაჭირო ვარაუდებს და უერთდებით ამ პრინციპს.
კოდის ნიმუში
არასწორი
public String dateFormatting(Date date) { return new SimpleDateFormat("yyyy-MM-dd").format(date); } public void load() { System.out.println("Loading..."); }
უფლება
public String formatDate(Date date) { return new SimpleDateFormat("yyyy-MM-dd").format(date); } public void loadUserPreferences() { System.out.println("Loading user preferences..."); }
გამოვლენა
- [x] სახელმძღვანელო
თქვენ შეგიძლიათ ამოიცნოთ ეს სუნი ფუნქციების სახელების გადახედვით, რომლებიც იყენებენ ბუნდოვან ტერმინებს, როგორიცაა do , run , process , load და ა.შ.
ავტომატურ ლინტერებს შეუძლიათ ამ შაბლონების მონიშვნა ან ფუნქციების ზედმეტად ზოგადი სახელებით მონიშვნა.
ტეგები
- დასახელება
დონე
- [x] დამწყები
რატომ არის ბიექცია მნიშვნელოვანი
ფუნქციების სახელებმა უნდა შექმნან მკაფიო ერთი-ერთზე მიმოწერა მათ სახელსა და ფუნქციებს შორის.
ამ Bijection-ის დარღვევა აიძულებს დეველოპერებს შეისწავლონ კოდის დეტალები კონტექსტში, შეანელონ გამართვა, მიმოხილვები და გაფართოებები.
AI თაობა
ხელოვნური ინტელექტის ინსტრუმენტები ხანდახან წარმოქმნის ფუნქციების ზოგად სახელებს თქვენი დომენის გაგების გარეშე.
ხელოვნური ინტელექტის გამოყენებისას, მიუთითეთ, რომ ფუნქციების სახელები უნდა იყოს აღწერილობითი და მოქმედებაზე ორიენტირებული.
AI გამოვლენა
ხელოვნური ინტელექტის მოდელებს შეუძლიათ ხელი შეუწყონ ორაზროვანი სახელების აღმოჩენას ფუნქციის ხელმოწერების წინასწარ განსაზღვრულ საუკეთესო პრაქტიკასთან დასახელების შედარებით.
ხელოვნური ინტელექტის შერწყმა და ხელით კოდის მიმოხილვა საუკეთესო შედეგებს იძლევა.
სცადეთ ისინი!
გახსოვდეთ: AI ასისტენტები უამრავ შეცდომას უშვებენ
სათანადო ინსტრუქციის გარეშე | სპეციფიკური ინსტრუქციებით |
---|---|
დასკვნა
ფუნქციების სახელები არ არის მხოლოდ ეტიკეტები; ისინი კონტრაქტებია მკითხველთან.
ორაზროვანი სახელები არღვევენ ამ კონტრაქტს და იწვევს დაბნეულობას.
აღწერილობითი, მოქმედებაზე ორიენტირებული სახელები ამარტივებს კომუნიკაციას და ამარტივებს თქვენს კოდს შენარჩუნებასა და გაფართოებას.
ურთიერთობები
აგრეთვე იხილეთ
პასუხისმგებლობის უარყოფა
კოდის სუნი ჩემი აზრია .
კრედიტები
ფოტო britishlibrary- ზე Unsplash- ზე
ფუნქციის სახელი უნდა იყოს ზმნა ან ზმნური ფრაზა და ის უნდა იყოს მნიშვნელოვანი
რობერტ სი მარტინი
ეს სტატია CodeSmell სერიის ნაწილია.