{"id":22705753,"url":"https://github.com/tox82/clean-code","last_synced_at":"2026-02-13T23:32:11.437Z","repository":{"id":78745268,"uuid":"594103294","full_name":"ToX82/clean-code","owner":"ToX82","description":"Linee guida per salvaguardare la pulizia del codice e la tutela degli sviluppatori intorno a te","archived":false,"fork":false,"pushed_at":"2023-07-06T08:25:48.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-04T21:19:37.333Z","etag":null,"topics":["codestyle","linter","suggestions"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ToX82.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-27T15:56:24.000Z","updated_at":"2023-01-27T16:27:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"a4353f30-07b8-4560-bd28-5c07b23bfa22","html_url":"https://github.com/ToX82/clean-code","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToX82%2Fclean-code","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToX82%2Fclean-code/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToX82%2Fclean-code/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToX82%2Fclean-code/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ToX82","download_url":"https://codeload.github.com/ToX82/clean-code/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246239683,"owners_count":20745753,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codestyle","linter","suggestions"],"created_at":"2024-12-10T09:12:48.141Z","updated_at":"2025-09-21T12:06:30.770Z","avatar_url":"https://github.com/ToX82.png","language":null,"readme":"# Clean coding (la teoria della teoria)\n\n### Regole generali\n* Il codice scritto con uno stile di predefinito e uniforme è più facile da capire e modificare, il che significa meno tempo speso sulla manutenzione, soprattutto quando è necessario tornarci sopra dopo molto tempo.\n* Il codice deve essere facile da capire anche per le persone e non solo per le macchine.\n* Il codice deve essere organizzato in modo che chiunque lo legga possa seguire facilmente il flusso delle informazioni e delle attività.\n* Il codice deve essere scritto seguendo principi di programmazione estetici e ben strutturati, in modo che sia facile da leggere e comprendere.\n* Se un'istruzione è complicata, aggiungi un commento che ne spiega il funzionamento\n\n### I princìpi sono prìncipi\n* _Don't repeat yourself (`DRY`)_: Il codice non dovrebbe essere duplicato, ma dovrebbe essere organizzato in modo da essere riutilizzabile.\n* _Keep It Simple, Stupid (`KISS`)_: Il codice dovrebbe essere semplice e facile da comprendere, evitando complessità inutili.\n* _You Aren't Gonna Need It (`YAGNI`)_: Dovresti evitare di implementare funzionalità che potrebbero essere necessarie in futuro ma che al momento non sono necessarie.\n* Tieni a mente i principi _`SOLID`_ quando progetti una classe o un metodo (per quanto possibile):\n   * _Single Responsibility Principle_: Ogni funzione dovrebbe avere una sola responsabilità e quindi un solo motivo per cambiare.\n   * _Open/Closed Principle_: Le funzioni dovrebbero essere aperte per l'estensione ma chiuse per la modifica, il che significa che è possibile estendere le funzionalità senza dover modificare il codice esistente.\n   * _Liskov Substitution Principle_: Le sottofunzioni dovrebbero essere utilizzabili al posto delle superfunzioni senza causare problemi.\n   * _Interface Segregation Principle_: Usa funzioni più piccole e specifiche per rendere il codice più facile da capire e mantenere. Una classe non dovrebbe incorporare metodi non necessari al proprio funzionamento\n   * _Dependency Inversion Principle_: Le dipendenze dovrebbero essere gestite spostando la dipendenza dalle funzioni concrete a quelle astratte: il codice dovrebbe dipendere dalle interfacce astratte e non dalle implementazioni concrete.\n\n# Gli strumenti (la pratica della teoria)\n### Fatti aiutare dai linter\nRicordarsi tutte le regole a memoria è complicato. Fortunatamente gli editor di codice moderni offrono la possibilità di usare degli strumenti (o `linter`) che analizzano il codice sorgente ed evidenziano errori di programmazione, bug, errori stilistici e costrutti sospetti. Usali. In questo repository sono presenti alcuni linter che uso normalmente, con le regole che seguo nei miei progetti. Sentiti libero di prenderli, usarli, aggiornarli e di mandarmi delle migliorie, se lo ritieni.\n\n### Automatizza i controlli e, quando possibile, le soluzioni\nOltre ai linter, che evidenziano i problemi, ci sono delle utilities che possono effettuare una correzione automatica, quando possibile. Alcuni esempi:\n\n#### PHP\n* Questo comando evidenzia tutti gli errori riscontrati da `phpcs` a riga di comando, nelle directory src e templates.\n\n`phpcs --colors -p  ./src/* ./templates/*`\n* Questo comando prova a correggerli\n\n`phpcbf ./src ./templates`\n\n#### JAVASCRIPT\n* Questo comando evidenzia tutti gli errori riscontrati da `eslint` a riga di comando\n\n`eslint webroot/js/custom.js`\n* Questo comando prova a correggerli\n\n`eslint webroot/js/custom.js --fix`\n\n#### CSS\n* Questo comando evidenzia tutti gli errori riscontrati da `stylelint` a riga di comando\n\n`stylelint \"./webroot/css/custom.css\"`\n* Questo comando prova a correggerli\n\n`stylelint \"./webroot/css/custom.css\" --fix`\n\n# Letture interessanti e altre risorse\n\nhttps://github.com/ryanmcdermott/clean-code-javascript\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftox82%2Fclean-code","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftox82%2Fclean-code","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftox82%2Fclean-code/lists"}