paint-brush
კოდი სუნი 285 - როგორ დავაფიქსიროთ არაიმპერატიული ფუნქციებიმიერ@mcsee
277 საკითხავი

კოდი სუნი 285 - როგორ დავაფიქსიროთ არაიმპერატიული ფუნქციები

მიერ Maximiliano Contieri3m2025/01/11
Read on Terminal Reader

Ძალიან გრძელი; Წაკითხვა

გაურკვეველი სახელების მქონე ფუნქციები მალავს განზრახვას და აბნევს მკითხველს. გამოიყენეთ აღწერითი, მოქმედებაზე ორიენტირებული სახელები.
featured image - კოდი სუნი 285 - როგორ დავაფიქსიროთ არაიმპერატიული ფუნქციები
Maximiliano Contieri HackerNoon profile picture
0-item

იყავი იმპერატიული!!

TL;DR: ფუნქციები გაურკვეველი სახელებით მალავს განზრახვას და აბნევს მკითხველს. გამოიყენეთ აღწერითი, მოქმედებაზე ორიენტირებული სახელები.

პრობლემები

  • გაურკვეველი ფუნქციის მიზანი
  • გაზრდილი შემეცნებითი დატვირთვა
  • შეცდომაში შემყვანი კონტექსტი
  • შემცირებული წაკითხვა
  • რთული თანამშრომლობა
  • ფარული ფუნქციონირება

გადაწყვეტილებები

  1. გამოიყენეთ მოქმედებაზე ორიენტირებული ზმნები
  2. გააკეთეთ სახელები აღწერით
  3. ასახეთ ფუნქციის მიზანი
  4. მოერიდეთ ზოგად ტერმინებს
  5. მიეცით მნიშვნელოვანი კონტექსტი
  6. მკაფიოდ გამოხატეთ ერთი პასუხისმგებლობა
  7. შეადარეთ მოქმედება შედეგს

რეფაქტორინგი

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 ასისტენტები უამრავ შეცდომას უშვებენ

სათანადო ინსტრუქციის გარეშე

სპეციფიკური ინსტრუქციებით

ChatGPT

ChatGPT

კლოდ

კლოდ

გაურკვევლობა

გაურკვევლობა

კოპილოტი

კოპილოტი

ტყუპები

ტყუპები

დასკვნა

ფუნქციების სახელები არ არის მხოლოდ ეტიკეტები; ისინი კონტრაქტებია მკითხველთან.


ორაზროვანი სახელები არღვევენ ამ კონტრაქტს და იწვევს დაბნეულობას.


აღწერილობითი, მოქმედებაზე ორიენტირებული სახელები ამარტივებს კომუნიკაციას და ამარტივებს თქვენს კოდს შენარჩუნებასა და გაფართოებას.

ურთიერთობები

აგრეთვე იხილეთ

პასუხისმგებლობის უარყოფა

კოდის სუნი ჩემი აზრია .

კრედიტები

ფოტო britishlibrary- ზე Unsplash- ზე


ფუნქციის სახელი უნდა იყოს ზმნა ან ზმნური ფრაზა და ის უნდა იყოს მნიშვნელოვანი

რობერტ სი მარტინი


ეს სტატია CodeSmell სერიის ნაწილია.


L O A D I N G
. . . comments & more!

About Author

Maximiliano Contieri HackerNoon profile picture
Maximiliano Contieri@mcsee
I’m a sr software engineer specialized in Clean Code, Design and TDD Book "Clean Code Cookbook" 500+ articles written

დაკიდეთ ტეგები

ეს სტატია იყო წარმოდგენილი...