Supporta il tuo Forum su Patreon!
 
  > Register  
  > Calendar  
  > Member List  
 
  > Support your Forum  
  > Today's Posts  
   

Go Back   netgamers.it > Tech & Tech > Developer's Zone

Reply
 
Thread Tools Rate Thread
Old 19th May 2021, 23:39   #1
bollo
bleargh
 
bollo's Avatar
 
Join Date: Aug 2010
Location: sverige
Posts: 2,357
Functional programming for noobs

Usate principi di programmazione funzionale per lavoro? Vi divertite? Pensate di smettere?



Con la certezza che questo sarà l'unico post del thread, comincio io!



Lavorando principalmente in c#, java/kotlin e typescript, ho cominciato ad introdurre con estrema soddisfazione immutabilità, funzioni pure e tipi precisi per ogni cosa; ognuna di queste cose si sta rivelando una vittoria notevole in termini di leggibilità del codice e manutenibilità, in alcuni casi, di performances.


Unico problema, tra l'introduzione di questi concetti nei team dove entro al ringraziamento finale dei programmatori che cominciano a usarli, mi trovo odiato a ogni merge request. Avete vissuto qualcosa del genere?
bollo is offline   Reply With Quote
Old 22nd May 2021, 15:48   #2
}o_o{
3v1l l33t
 
}o_o{'s Avatar
 
Join Date: May 2004
Posts: 988
Scusa odiato perché, codice diverso dal solito? Troppe diff/dimensioni del PR? Cambiamenti non relati al task/sottosistema che dovevi modificare/estendere? Troppo tempo perso nel refactoring? Cambi codice non coperto da test?

Alcune sono legittime altre no difficile da dire
}o_o{ is offline   Reply With Quote
Old 22nd May 2021, 20:43   #3
bollo
bleargh
 
bollo's Avatar
 
Join Date: Aug 2010
Location: sverige
Posts: 2,357
Semplicemente un modo diverso di lavorare. Son più di dieci anni che c# ha le lambda e la monade ienumerable con select many, ma ancora c'è gente che non comprende il perché una select é più potente di un for pur essendo cento volte meno duttile dal loro punto di vista.
Quando durante il pairing o le mr gli dico di usare una reduce o fold o aggregate, il programmatore che non ha voglia di imparare un paradigma nuovo non capirà mai il valore di una pure function o dellimmutabilita. Semplicemente comincia a tirare i remi in barca, credendo che quanto ha fatto finora sia messo in discussione. Si sente aggredito insomma.
Un disclaimer é d'obbligo comunque, oramai sono 6 anni che faccio tutoraggio, quindi ho pure un sacco di soddisfazioni, sto parlando di quei casi intermedi, o di quando trovo particolari resistenze da programmatori ai quali importa poco la qualità o la tecnica.
bollo is offline   Reply With Quote
Old 23rd May 2021, 16:25   #4
}o_o{
3v1l l33t
 
}o_o{'s Avatar
 
Join Date: May 2004
Posts: 988
Vabbe allora cxxi loro
Noi abbiamo "risolto" con un documento riguardo stile e best practices; l'originale l'ho creato io ma tutti possono modificarlo via PR.
Per dire, se qualcuno scrive un for che è coperto da uno degli algoritmi in stl lo si commenta in PR "read the style guide".
Deve cmq partire da sopra (tuo team lead, coordinator, o come lo chiamate voi ) e concordato, una volta deciso cosa "è ok" tutti si devono conformare se vogliono che le PR passino o avere una giustificazione per deviare.

Il grosso delle cose indicate nella guida viene anche segnalato da cppcheck e clang-tidy quindi a breve abbiamo intenzione di integrarli nelle PR.
}o_o{ is offline   Reply With Quote
Old 9th June 2021, 09:20   #5
gerryino
Premium Netgamers
 
gerryino's Avatar
 
Join Date: Sep 2007
Location: 45°44'15"N - 9°18'42''E
Posts: 1,684
Quote:
Originally Posted by bollo View Post
Usate principi di programmazione funzionale per lavoro? Vi divertite? Pensate di smettere?
Premesso che non sono un dev, ma un descrizione breve di cosa è la programmazione funzionale?

Giusto per restare informato....
gerryino is offline   Reply With Quote
Old 9th June 2021, 10:59   #6
bollo
bleargh
 
bollo's Avatar
 
Join Date: Aug 2010
Location: sverige
Posts: 2,357
Posso solo rendere peggio la spiegazione di Wikipedia ma ci provo:
La programmazione funzionale é un paradigma che si affianca/sostituisce a quello imperativo/ad oggetti dove sono le funzioni e la loro composizione la priorità, al posto delle classi/oggetti.
In pratica ci si riferisce per lo più ad un modo di pensare ed affrontare i problemi differente e più vicino alla matematica (o ad una branca della matematica, per la precisione la teoria delle categorie).
Di recente moltissimi linguaggi ad oggetti si sono avvicinati alla programmazione funzionale introducendo piccole/grandi modifiche, ma ci sono molti altri concetti che stanno sotto a questo ombrello della PF, e genericamente sono difficili da proporre ai programmatori che meno vogliono aggiornarsi..
bollo is offline   Reply With Quote
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 20:07.



Copyright 2017-2024 by netgamers.it