{"id":18319719,"url":"https://github.com/saintzet/heuristicsforcleancode","last_synced_at":"2025-04-05T22:31:35.456Z","repository":{"id":53853030,"uuid":"521641617","full_name":"SaintZet/HeuristicsForCleanCode","owner":"SaintZet","description":"The goal of the project is to help learn heuristics that will help you write clean code. Use them for the benefit of the community.","archived":false,"fork":false,"pushed_at":"2024-02-21T13:14:40.000Z","size":355,"stargazers_count":18,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-21T12:59:20.266Z","etag":null,"topics":["clean","clean-architecture","clean-code","code-smell","code-smell-detection","csharp","csharp-examples","design-patterns","example-clean-code","example-code","example-java","heuristic","heuristics","java","robert-martin"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SaintZet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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}},"created_at":"2022-08-05T13:06:46.000Z","updated_at":"2024-03-02T04:23:22.000Z","dependencies_parsed_at":"2024-02-21T14:29:41.486Z","dependency_job_id":null,"html_url":"https://github.com/SaintZet/HeuristicsForCleanCode","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SaintZet%2FHeuristicsForCleanCode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SaintZet%2FHeuristicsForCleanCode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SaintZet%2FHeuristicsForCleanCode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SaintZet%2FHeuristicsForCleanCode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SaintZet","download_url":"https://codeload.github.com/SaintZet/HeuristicsForCleanCode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411236,"owners_count":20934650,"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":["clean","clean-architecture","clean-code","code-smell","code-smell-detection","csharp","csharp-examples","design-patterns","example-clean-code","example-code","example-java","heuristic","heuristics","java","robert-martin"],"created_at":"2024-11-05T18:14:04.294Z","updated_at":"2025-04-05T22:31:34.883Z","avatar_url":"https://github.com/SaintZet.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n \u003cimg src=\"Media/repository-logo.png\" width=\"900\"\u003e\n\u003c/p\u003e\n\n## :exclamation: *All heuristic rules in [GitHub Wiki](https://github.com/SaintZet/HeuristicsForClearCode/wiki)* :exclamation:\n\n### :bulb: Usage\n\nThe purpose of this knowledge library is to **structure** and **quickly access** various \"[code smell](https://en.wikipedia.org/wiki/Code_smell)\" and methods of dealing with them.\u003cbr /\u003e\n\u003cbr /\u003e\nIdea of creating this repository came to me while reading Robert Martin's \"*Clean Code*\". I realized that I would like to have all these rules at my fingertips in a convenient format.\u003cbr /\u003e\nI've shortened the information a bit so that it can be referred to as a hint and referenced without using a different context.\u003cbr /\u003e\n\u003cbr /\u003e\nOne of the advantages of this project is the ability to copy links to specific rules or code smells.\u003cbr /\u003e\nYou can use thise links in private correspondence with colleagues, in comments on pull requests, in forums, or anywhere else.\u003cbr /\u003e\nFor example in your amazing readme file without [too much information](https://github.com/SaintZet/HeuristicsForCleanCode/wiki/%5BG%5Deneral#g08-too-much-information) :smile: \u003cbr /\u003e\n\u003cbr /\u003e\nMost of the rules are illustrated with code examples. You can view the code without rules, each file is signed with the name of the rule and contain comments.\u003cbr /\u003e\nTo the extent possible, these rules will be further supported by code examples. And perhaps personal observations.\u003cbr /\u003e\n\u003cbr /\u003e\nI hope this project will be useful for you and I invite you to participate in [discussions](../../discussions), create [issues](../../issues) and contribute your examples.\n\n### :information_source: Acknowledgment\n\nThe inspiration for writing these heuristics in a wiki format was Robert C. Martin \"*Clean Code*\". In turn, Robert Martin refers to other works: \n- Refactoring: Improving the Design of Existing Code, Martin Fowler et al., Addison-Wesley, 1999.\n- The Pragmatic Programmer, Andrew Hunt, Dave Thomas, Addison-Wesley, 2000.\n- Design Patterns: Elements of Reusable Object-Oriented Software, Gamma et al., Addison-Wesley, 1996.\n- Smalltalk Best Practice Patterns, Kent Beck, Prentice Hall, 1997. \n- Implementation Patterns, Kent Beck, Addison-Wesley, 2008.\n- Agile Software Development: Principles, Patterns, and Practices, Robert C. Martin, Prentice Hall, 2002.\n- Domain Driven Design, Eric Evans, Addison-Wesley, 2003.\u003cbr /\u003e\n\nI am immensely grateful to these people for their work.\u003cbr /\u003e\n\n### :warning: Important\n\nClean code is not written by following a set of rules. You don’t become a software craftsman by learning a list of heuristics. Professionalism and craftsmanship come from values that drive disciplines.\n\n\u003cbr\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch2\u003eПеревод \u003cimg src=\"https://media.giphy.com/media/lxDOajE5iIaxBmq2WB/giphy.gif\" width=\"32\"\u003e\u003c/h2\u003e\u003c/summary\u003e\n\u003chr\u003e\n\n### :exclamation: *All heuristic rules on [GitHub Wiki](https://github.com/SaintZet/HeuristicsForClearCode/wiki)* :exclamation:\n\n### :bulb: Применение\n\nЦелью данной библиотеки знаний является **структурированный** и **быстрый доступ** к различным \"[запахам кода](https://ru.wikipedia.org/wiki/Код_с_запашком)\" и методов борьбы с ними. \u003cbr /\u003e\n\u003cbr /\u003e\nИдея создания этого репозитория пришла мне, когда я читал \"*Чистый код*\" Роберта Мартина. Я понял, что хотел бы иметь все эти правила под рукой в удобном формате.\u003cbr /\u003e\nЯ немного ужал информацию для того, что бы к ней можно было обратиться как к подсказке и ссылаться на нее не используя другой контекст.\u003cbr /\u003e\n\u003cbr /\u003e\nОдним из преимуществ этого проекта является возможность копирования ссылок на определенные правила или запахи кода.\u003cbr /\u003e\nВы можете использовать эти ссылки в личной переписке с коллегами, в комментариях к пулл-реквестам, на форумах или где-либо еще.\u003cbr /\u003e\nНапример, в вашем прекрасном файле readme без [лишней информации](https://github.com/SaintZet/HeuristicsForCleanCode/wiki/%5BG%5Deneral#g08-too-much-information) :smile:\u003cbr /\u003e\n\u003cbr /\u003e\nБольшая часть правил проиллюстрированы примерами кода. Вы можете просматривать код и без правил, каждый файл подписан именем правила и содержит комментарии.\u003cbr /\u003e\nПо мере возможности, данные правила будут еще больше подкрепляться примерами кода. И возможно, личными наблюдениями. \u003cbr /\u003e\n\u003cbr /\u003e\nЯ надеюсь вам этот проект пригодиться и приглашаю участвовать в [обсуждениях](../../discussions), создании [задач](../../issues) и контребьютить свои примеры. \n\n### :information_source: Благодарность\n\nВдохновением для написания этих эвристических правил в виде вики послужила книга Роберта Мартина \"*Чистый код*\". В свою очередь Роберт Мартин ссылается на другие не менее значимые труды:\n- Refactoring: Improving the Design of Existing Code, Martin Fowler et al., Addison-Wesley, 1999.\n- The Pragmatic Programmer, Andrew Hunt, Dave Thomas, Addison-Wesley, 2000.\n- Design Patterns: Elements of Reusable Object Oriented Software, Gamma et al., Addison-Wesley, 1996.\n- Smalltalk Best Practice Patterns, Kent Beck, Prentice Hall, 1997.\n- Implementation Patterns, Kent Beck, Addison-Wesley, 2008.\n- Agile Software Development: Principles, Patterns, and Practices, Robert C. Martin, Prentice Hall, 2002.\n- Domain Driven Design, Eric Evans, Addison-Wesley, 2003.\u003cbr /\u003e\n\nЯ безмерно благодарен этим людям за их работу.\u003cbr /\u003e\n\n### :warning: Важно\n\nНевозможно написать чистый код, действуя по списку правил. Нельзя стать мастером, изучив набор эвристик. Профессионализм и мастерство формируются на основе ценностей, которыми вы руководствуетесь в обучении.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e \n  \u003csummary\u003e\u003ch2\u003eПереклад \u003cimg src=\"https://media.giphy.com/media/hVUK7LtvxX6KNYydAb/giphy.gif\" width=\"30\"\u003e\u003c/h2\u003e\u003c/summary\u003e\n\u003chr\u003e\n\n### :exclamation: *Всі евристичні правила в [GitHub Wiki](https://github.com/SaintZet/HeuristicsForClearCode/wiki)* :exclamation:\n\n### :bulb: Застосування\n\nМетою даної бібліотеки знань є **структурований** та **швидкий доступ** до різних \"[запахів коду](https://uk.wikipedia.org/wiki/Запахи_коду)\" та методів боротьби з ними. \u003cbr /\u003e\n\u003cbr /\u003e\nІдея створення цього репозиторію прийшла до мене, коли я читав \"*Чистий код*\" Роберта Мартина. Я зрозумів, що хотів би мати всі ці правила під рукою в зручному форматі.\u003cbr /\u003e\nЯ трохи зтиснув інформацію для того, щоб до неї можна було звернутися як до підказки та посилатися на неї не використовуючи інший контекст.\u003cbr /\u003e\n\u003cbr /\u003e\nОднією з переваг цього проекту є можливість копіювати посилання на конкретні правила або запахи коду.\u003cbr /\u003e\nВи можете використовувати ці посилання у приватному листуванні з колегами, в коментарях до запитів на отримання, на форумах або де завгодно.\u003cbr /\u003e\nНаприклад, у вашому дивовижному файлі readme без [зайвої інформації](https://github.com/SaintZet/HeuristicsForCleanCode/wiki/%5BG%5Deneral#g08-too-much-information)\u003cbr /\u003e\n\u003cbr /\u003e\nБільшість правил проілюстровані прикладами коду. Ви можете переглядати код без правил, кожен файл підписаний ім'ям правила і містить коментарі.\u003cbr /\u003e\nУ міру можливості дані правила будуть ще більше підкріплюватися прикладами коду. І можливо, особистими спостереженнями. \u003cbr /\u003e\n\u003cbr /\u003e\nЯ сподіваюсь, що цей проект стане вам у нагоді. Також запрошую брати участь в [обговореннях](../../discussions), створенні [задач](../../issues) та контриб‘ютити свої приклади.\n\n### :information_source: Подяка\n\nНатхненням для написання цих евристичних правил у вигляді вікі послужила книга Роберта Мартіна \"*Чистий код*\". У свою чергу Роберт Мартін посилається на інші не менш важливі праці:\n- Refactoring: Improving the Design of Existing Code, Martin Fowler et al., Addison-Wesley, 1999.\n- The Pragmatic Programmer, Andrew Hunt, Dave Thomas, Addison-Wesley, 2000.\n- Design Patterns: Elements of Reusable Object Oriented Software, Gamma et al., Addison-Wesley, 1996.\n- Smalltalk Best Practice Patterns, Kent Beck, Prentice Hall, 1997.\n- Implementation Patterns, Kent Beck, Addison-Wesley, 2008.\n- Agile Software Development: Principles, Patterns, and Practices, Robert C. Martin, Prentice Hall, 2002.\n- Domain Driven Design, Eric Evans, Addison-Wesley, 2003.\u003cbr /\u003e\n\nЯ безмежно вдячний цим людям за їх працю.\u003cbr /\u003e\n\n### :warning: Важливо\n\nНеможливо написати чистий код, діючи за переліком правил. Не можна стати майстром, вивчивши набір евристик. Професіоналізм та майстерність формуються на основі цінностей, якими ви керуєтеся у навчанні.\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaintzet%2Fheuristicsforcleancode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaintzet%2Fheuristicsforcleancode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaintzet%2Fheuristicsforcleancode/lists"}