Idiom programowania

W programowaniu komputerowym idiom programowania lub idiom kodu to grupa fragmentów kodu mających równoważną rolę semantyczną , która często powtarza się w projektach oprogramowania , często wyrażając specjalną cechę powtarzającej się konstrukcji w jednym lub większej liczbie języków programowania lub bibliotek . Definicja ta wywodzi się z definicji „ idiomu ” stosowanej w językoznawstwie. Deweloperzy rozpoznawać idiomy programistyczne poprzez kojarzenie i nadawanie znaczenia (rola semantyczna) jednemu lub większej liczbie wyrażeń składniowych we fragmentach kodu (fragmentach kodu). Idiom można postrzegać jako działanie na koncepcji programowania leżącej u podstaw wzorca w kodzie, który w implementacji jest reprezentowany przez ciągłe lub rozproszone fragmenty kodu. Fragmenty te są dostępne w kilku językach programowania, frameworkach , a nawet bibliotekach. Ogólnie rzecz biorąc, semantyczna rola idiomu programowania to wyrażenie w języku naturalnym prostego zadania, algorytmu lub struktury danych , które nie jest wbudowaną funkcję w używanym języku programowania lub, odwrotnie, użycie niezwykłej lub godnej uwagi funkcji wbudowanej w język programowania.

Znajomość idiomów związanych z językiem programowania i sposobu ich używania jest ważną częścią zdobywania biegłości w tym języku. Pomaga także w transferze wiedzy w formie analogii z jednego języka lub frameworka na inny. Taka idiomatyczna wiedza jest szeroko stosowana w repozytoriach crowdsourcingowych, aby pomóc programistom pokonać bariery programistyczne. Mapowanie idiomów kodu na idiosynkrazje może być pomocnym sposobem na znalezienie kompromisu między uogólnieniem a szczegółowością. Identyfikując typowe wzorce i idiomy, programiści mogą tworzyć modele myślowe i schematy, które pomogą im szybko zrozumieć nowy kod i poruszać się po nim. Co więcej, mapując te idiomy na cechy charakterystyczne i konkretne przypadki użycia, programiści mogą mieć pewność, że stosują właściwe podejście i nie generalizują go. Jednym ze sposobów osiągnięcia tego jest utworzenie odniesienia lub dokumentacji, która odwzorowuje popularne idiomy na konkretne przypadki użycia, podkreślając miejsca, w których mogą wymagać adaptacji lub modyfikacji, aby pasowały do ​​konkretnego projektu lub zespołu programistów. Może to pomóc w zapewnieniu, że programiści pracują w oparciu o wspólne zrozumienie najlepszych praktyk i mogą podejmować świadome decyzje dotyczące tego, kiedy używać ustalonych idiomów, a kiedy dostosowywać je do swoich konkretnych potrzeb.

Powszechnym błędnym przekonaniem jest używanie przysłówkowej lub przymiotnikowej formy tego terminu jako typowego użycia języka programowania , co w rzeczywistości odnosi się do specyfiki. Idiom oznacza, że ​​semantyka jakiegoś kodu w języku programowania jest podobna do innych języków lub frameworków. Na przykład specyficznym sposobem zarządzania pamięcią dynamiczną w C byłoby użycie standardowych funkcji bibliotecznych C malloc i free , podczas gdy idiomatyczne odnosi się do ręcznego zarządzania pamięcią jako powtarzającej się roli semantycznej, którą można osiągnąć za pomocą fragmentów kodu malloc w C lub wskaźnik = nowy typ [liczba_elementów] w C++. W obu przypadkach semantyka kodu jest zrozumiała dla programistów znających C lub C++, gdy tylko poznają idiomatyczne lub specyficzne uzasadnienie. Jednakże, chociaż uzasadnienie idiomatyczne jest często ogólne w dziedzinie programowania, uzasadnienie idiosynkratyczne jest często powiązane z konkretną terminologią API.

Przykłady prostych idiomów

Drukowanie Witaj, świecie

Jeden z najczęstszych punktów wyjścia do nauki programowania lub zauważenia różnic składniowych pomiędzy znanym językiem a nowym.

Ma kilka implementacji, wśród nich fragmenty kodu dla C++ :

   std  ::  cout  <<  "Witaj, świecie  \n  "  ; 

Dla Javy :

 Systemu  .  na zewnątrz  .  println  (  "Witaj, świecie"  ); 

Wstawianie elementu do tablicy

Ten idiom pomaga programistom zrozumieć, jak manipulować kolekcjami w danym języku, szczególnie wstawiając element x na pozycji i na liście s i przesuwając elementy w prawo.

Fragmenty kodu:

Dla Pythona :

  s  .  wstaw  (  i  ,  x  ) 

Dla JavaScriptu :

 0  s  .  połączenie  (  i  ,  ,  x  ); 

Dla Perla :

  0  splot  (  @s  ,  $i  ,  ,  $x  ) 

Zobacz też

Linki zewnętrzne