Skip to content

Commit 13aa4e4

Browse files
committed
init(braindump): blah principles
0 parents  commit 13aa4e4

9 files changed

Lines changed: 1324 additions & 0 deletions

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"aliveStatusCodes": [0, 200, 429],
3+
"httpHeaders": [
4+
{
5+
"urls": ["http"],
6+
"headers": {
7+
"User-Agent": "Chrome/124.0.0.0"
8+
}
9+
}
10+
]
11+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: Check Markdown links
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
schedule:
8+
# Run every Tuesday at 3:00 AM (See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07)
9+
- cron: "0 3 * * 2"
10+
11+
jobs:
12+
markdown-link-check:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@master
16+
- uses: gaurav-nelson/github-action-markdown-link-check@v1
17+
with:
18+
config-file: ".github/workflows/markdown-link-check.json"
19+
use-quiet-mode: "yes"
20+
use-verbose-mode: "yes"

.prettierrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"proseWrap": "always",
3+
"printWidth": 80
4+
}

.trunk/.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
*out
2+
*logs
3+
*actions
4+
*notifications
5+
*tools
6+
plugins
7+
user_trunk.yaml
8+
user.yaml
9+
tmp

.trunk/configs/.markdownlint.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Prettier friendly markdownlint config (all formatting rules disabled)
2+
extends: markdownlint/style/prettier

.trunk/configs/.yamllint.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
rules:
2+
quoted-strings:
3+
required: only-when-needed
4+
extra-allowed: ["{|}"]
5+
key-duplicates: {}
6+
octal-values:
7+
forbid-implicit-octal: true

.trunk/trunk.yaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# This file controls the behavior of Trunk: https://docs.trunk.io/cli
2+
# To learn more about the format of this file, see https://docs.trunk.io/reference/trunk-yaml
3+
version: 0.1
4+
cli:
5+
version: 1.22.10
6+
# Trunk provides extensibility via plugins. (https://docs.trunk.io/plugins)
7+
plugins:
8+
sources:
9+
- id: trunk
10+
ref: v1.6.7
11+
uri: https://github.com/trunk-io/plugins
12+
# Many linters and tools depend on runtimes - configure them here. (https://docs.trunk.io/runtimes)
13+
runtimes:
14+
enabled:
15+
- node@18.20.5
16+
- python@3.10.8
17+
# This is the section where you manage your linters. (https://docs.trunk.io/check/configuration)
18+
lint:
19+
enabled:
20+
- actionlint@1.7.7
21+
- checkov@3.2.368
22+
- git-diff-check
23+
- markdownlint@0.44.0
24+
- prettier@3.4.2
25+
- trufflehog@3.88.5
26+
- yamllint@1.35.1
27+
actions:
28+
disabled:
29+
- trunk-announce
30+
- trunk-check-pre-push
31+
- trunk-fmt-pre-commit
32+
enabled:
33+
- trunk-upgrade-available

OTHER.md

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
# Software Development Best Practices
2+
3+
this is a comprehensive collection of essential software engineering practices and
4+
recommendations.
5+
6+
- [Philosophies and Common Practices](#philosophies-and-common-practices)
7+
- [System Design](#system-design)
8+
- [API](#api)
9+
- [Security](#security)
10+
- [Languages](#languages)
11+
- [Go](#go)
12+
- [JavaScript](#javascript)
13+
- [PHP](#php)
14+
- [Python](#python)
15+
- [Shell Script](#shell-script)
16+
- [TypeScript](#typescript)
17+
- [Tools](#tools)
18+
- [Containerization](#containerization)
19+
- [Kafka](#kafka)
20+
- [NoSQL](#nosql)
21+
- [SQL](#sql)
22+
- [Testing](#testing)
23+
24+
---
25+
26+
## Philosophies and Common Practices
27+
28+
- [List of software development philosophies](https://en.wikipedia.org/wiki/List_of_software_development_philosophies)
29+
- [Programming Principles](https://github.com/webpro/programming-principles)
30+
- [Google Engineering Practices Documentation](https://google.github.io/eng-practices/)
31+
- [Professional Programming](https://github.com/charlax/professional-programming)
32+
- [Hacker Laws](https://github.com/dwmkerr/hacker-laws)
33+
- [Project Based Learning](https://github.com/tuvtran/project-based-learning)
34+
- [The Twelve-Factor App](https://12factor.net/)
35+
- [3factor App](https://3factor.app/)
36+
- [Conventional Commits](https://conventionalcommits.org/)
37+
38+
## System Design
39+
40+
- [The System Design Primer](https://github.com/donnemartin/system-design-primer)
41+
- [Architecture Styles](https://docs.microsoft.com/en-us/azure/architecture/guide/architecture-styles/)
42+
- [Modern Web Apps Architectural Principles](https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/architectural-principles)
43+
- [Software Design](https://en.wikipedia.org/wiki/Category:Software_design)
44+
- [System Design Cheatsheet](https://gist.github.com/vasanthk/485d1c25737e8e72759f)
45+
- [Building Microservices](https://docs.microsoft.com/en-us/azure/architecture/microservices/)
46+
- [Patterns of Service-Oriented Architecture](https://multithreaded.stitchfix.com/blog/2017/05/09/patterns-of-service-oriented-architecture/)
47+
- [Cloud Design Patterns](https://docs.microsoft.com/en-us/azure/architecture/patterns/)
48+
49+
## API
50+
51+
- [Microsoft API Guidelines](https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md)
52+
- [Azure API Design](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design)
53+
- [Google API Design Guide](https://cloud.google.com/apis/design/)
54+
- [Heroku Platform HTTP API Design Guide](https://geemus.gitbooks.io/http-api-design/content/en/index.html)
55+
- [Google Web API Design: The Missing Link](https://cloud.google.com/files/apigee/apigee-web-api-design-the-missing-link-ebook.pdf)
56+
- [Zalando RESTful API and Event Scheme Guidelines](https://opensource.zalando.com/restful-api-guidelines/)
57+
- [HTTP API Design Guide](https://geemus.gitbooks.io/http-api-design/content/en/)
58+
- [OWASP API Security Project](https://owasp.org/www-project-api-security/)
59+
- [API Security Best Practices](https://github.com/GitGuardian/APISecurityBestPractices)
60+
- [API Security Checklist](https://github.com/shieldfy/API-Security-Checklist)
61+
62+
## Security
63+
64+
- [OWASP Cheat Sheet Series](https://cheatsheetseries.owasp.org/)
65+
- [Security Principles](https://infosec.mozilla.org/fundamentals/security_principles.html)
66+
- [Web Security Guidelines](https://infosec.mozilla.org/guidelines/web_security)
67+
- [WebAppSec/Secure Coding Guidelines](https://wiki.mozilla.org/WebAppSec/Secure_Coding_Guidelines)
68+
- [API Security Checklist](https://github.com/shieldfy/API-Security-Checklist)
69+
- [OWASP API Security Project](https://owasp.org/www-project-api-security/)
70+
- [API Security Best Practices](https://github.com/GitGuardian/APISecurityBestPractices)
71+
- [Web Developer Security Checklist](https://github.com/virajkulkarni14/WebDeveloperSecurityChecklist)
72+
73+
## Languages
74+
75+
### Go
76+
77+
- [Google's Go Style Guide](https://google.github.io/styleguide/go/index)
78+
- [Uber Go Style Guide](https://github.com/uber-go/guide/blob/master/style.md)
79+
- [Thanos Coding Style Guide](https://github.com/thanos-io/thanos/blob/main/docs/contributing/coding-style-guide.md)
80+
- [Effective Go](https://go.dev/doc/effective_go)
81+
- [Go Proverbs by Rob Pike](https://go-proverbs.github.io/)
82+
- [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments#go-code-review-comments)
83+
- [The Zen of Go](https://the-zen-of-go.netlify.app/)
84+
- [Go best practices, six years in](https://peter.bourgon.org/go-best-practices-2016/)
85+
- [Knowledge Base for Go Programming](https://go101.org/)
86+
- [Clean Go Code](https://github.com/Pungyeon/clean-go-article)
87+
- [Practical Go: Real world advice for writing maintainable Go programs](https://dave.cheney.net/practical-go/presentations/qcon-china.html)
88+
- [Twelve Go Best Practices from a gopher at Google](https://talks.golang.org/2013/bestpractices.slide)
89+
- [Modern Business Software in Go](https://threedots.tech/series/modern-business-software-in-go/)
90+
- [Darker Corners of Go](https://rytisbiel.com/2021/03/06/darker-corners-of-go/)
91+
- [Wild Workouts DDD](https://github.com/ThreeDotsLabs/wild-workouts-go-ddd-example)
92+
- [How I write HTTP services after eight years](https://pace.dev/blog/2018/05/09/how-I-write-http-services-after-eight-years.html)
93+
- [Design Patterns in Go](https://github.com/RefactoringGuru/design-patterns-go)
94+
- [Designing Go Libraries: The Talk: The Article](https://abhinavg.net/2022/12/06/designing-go-libraries/)
95+
- [Data Race Patterns in Go](https://www.uber.com/en-US/blog/data-race-patterns-in-go/)
96+
- [4 practical principles of high-quality database integration tests in Go](https://threedots.tech/post/database-integration-testing/)
97+
- [What can be summarized from 100 Go Mistakes?](https://www.sobyte.net/post/2023-05/summarized-from-100-go-mistakes/)
98+
- [Go memory ballast: How I learnt to stop worrying and love the heap](https://blog.twitch.tv/en/2019/04/10/go-memory-ballast-how-i-learnt-to-stop-worrying-and-love-the-heap/)
99+
- [Profiling in Go: A Practical Guide](https://nyadgar.com/posts/go-profiling-like-a-pro/)
100+
- [Mastering SOLID Principles with Go Examples](https://packagemain.tech/p/mastering-solid-principles-with-go)
101+
- [gRPC: Anti-Patterns of Client creation](https://github.com/grpc/grpc-go/blob/master/Documentation/anti-patterns.md)
102+
103+
### JavaScript
104+
105+
- [JS the Right Way](https://github.com/braziljs/js-the-right-way)
106+
- [Principles of Writing Consistent, Idiomatic JavaScript](https://github.com/rwaldron/idiomatic.js)
107+
- [Project Guidelines](https://github.com/elsewhencode/project-guidelines)
108+
- [Clean Code](https://github.com/ryanmcdermott/clean-code-javascript)
109+
- [JavaScript Design Patterns for Humans](https://github.com/sohamkamani/javascript-design-patterns-for-humans)
110+
- [Patterns For Large-Scale JavaScript Application Architecture](https://addyosmani.com/largescalejavascript/)
111+
- [Spellbook of Modern webdev](https://github.com/dexteryy/spellbook-of-modern-webdev)
112+
- [Node.js Best Practices](https://github.com/goldbergyoni/nodebestpractices)
113+
- [10 best practices to containerize Node.js web applications with Docker](https://snyk.io/blog/10-best-practices-to-containerize-nodejs-web-applications-with-docker/)
114+
115+
### PHP
116+
117+
- [PHP: The Right Way](https://phptherightway.com/)
118+
- [Best Practices for Modern PHP Development](https://www.airpair.com/php/posts/best-practices-for-modern-php-development)
119+
- [PHP Standards Recommendations](https://www.php-fig.org/psr/)
120+
- [Clean Code PHP](https://github.com/jupeter/clean-code-php)
121+
- [Modern PHP Without a Framework](https://kevinsmith.io/modern-php-without-a-framework)
122+
- [Laravel & PHP Guidelines](https://spatie.be/guidelines/laravel-php)
123+
- [Refactoring PHP](https://christoph-rumpel.com/2020/8/refactoring-php)
124+
- [Modern PHP Security](https://labs.detectify.com/2020/08/13/modern-php-security-part-1-bug-classes/)
125+
- [A decoupled PHP architecture inspired by the Clean Architecture](https://medium.com/engenharia-arquivei/a-decoupled-php-architecture-inspired-by-the-clean-architecture-788b30ab52c2)
126+
- [The Symfony Framework Best Practices](https://symfony.com/doc/current/best_practices.html)
127+
- [PHP Internals Book](https://www.phpinternalsbook.com/)
128+
- **Design Patterns**
129+
- [DesignPatternsPHP](https://designpatternsphp.readthedocs.io/en/latest/)
130+
- [Design Patterns for Humans](https://github.com/kamranahmedse/design-patterns-for-humans)
131+
- [Design Patterns in PHP](https://github.com/RefactoringGuru/design-patterns-php/)
132+
- **DDD**
133+
- [Practical CQRS, DDD, ADR, hexagonal architecture](https://github.com/ferrius/ddd-cqrs-example)
134+
- [Domain-Driven Design in a PHP project using Symfony](https://github.com/jorge07/ddd-playground/)
135+
- [Domain-driven design e-shop cart demonstration](https://github.com/simara-svatopluk/cart)
136+
- **Unit Testing**
137+
- [Unit testing tips by examples in PHP](https://github.com/sarven/unit-testing-tips)
138+
139+
### Python
140+
141+
- [Python Best Practices Guidebook](https://github.com/realpython/python-guide)
142+
- [Python Patterns](https://github.com/faif/python-patterns)
143+
- [The Zen of Python (PEP 20)](https://www.python.org/dev/peps/pep-0020/)
144+
- [Design Patterns in Python](https://github.com/RefactoringGuru/design-patterns-python)
145+
- [Google Python Style Guide](https://github.com/google/styleguide/blob/gh-pages/pyguide.md)
146+
147+
### Shell Script
148+
149+
- [Shell Script Best Practices](https://sharats.me/posts/shell-script-best-practices/)
150+
151+
### TypeScript
152+
153+
- [Design Patterns in TypeScript](https://github.com/RefactoringGuru/design-patterns-typescript)
154+
155+
## Tools
156+
157+
### Containerization
158+
159+
- [Best practices for building containers](https://cloud.google.com/architecture/best-practices-for-building-containers)
160+
- [Docker development best practices](https://docs.docker.com/develop/dev-best-practices/)
161+
- [Kubernetes production best practices](https://learnk8s.io/production-best-practices/)
162+
- [Docker Best Practices: Choosing Between RUN, CMD, and ENTRYPOINT](https://www.docker.com/blog/docker-best-practices-choosing-between-run-cmd-and-entrypoint/)
163+
164+
### Kafka
165+
166+
- [The Top 10 Takeaways from Nearly 200 Kafka Experts](https://www.confluent.io/blog/top-10-kafka-use-cases-lessons-guides-from-200-experts/)
167+
- [Top 5 Things Every Apache Kafka Developer Should Know](https://www.confluent.io/blog/5-things-every-kafka-developer-should-know/)
168+
169+
### NoSQL
170+
171+
- [Redis Best Practices: Expert Tips for High Performance](https://www.dragonflydb.io/guides/redis-best-practices/)
172+
173+
### SQL
174+
175+
- [SQL Style Guide](https://www.sqlstyle.guide/)
176+
- [Use The Index, Luke](https://use-the-index-luke.com)
177+
- [Best practices for writing SQL queries](https://www.metabase.com/learn/building-analytics/sql-templates/sql-best-practices)
178+
- [The Querynomicon: An Introduction to SQL for Weary Data Scientists](https://gvwilson.github.io/sql-tutorial/)
179+
180+
#### PostgreSQL
181+
182+
- [PostgreSQL: Don't Do This](https://wiki.postgresql.org/wiki/Don%27t_Do_This)
183+
- [Making a Postgres query 1,000 times faster](https://mattermost.com/blog/making-a-postgres-query-1000-times-faster/)
184+
- [Setting Up PostgreSQL Failover and Failback, the Right Way!](https://www.highgo.ca/2023/04/10/setting-up-postgresql-failover-and-failback-the-right-way/)
185+
- [PostgreSQL Stories: From slow query to fast](https://render.com/blog/postgresql-slow-query-to-fast-via-stats)
186+
- [13 Tips to Improve PostgreSQL Insert Performance](https://www.timescale.com/blog/13-tips-to-improve-postgresql-insert-performance/)
187+
188+
#### MySQL
189+
190+
- [Configuring MariaDB for Optimal Performance](https://mariadb.com/kb/en/configuring-mariadb-for-optimal-performance/)
191+
192+
### Testing
193+
194+
- [Unit testing best practices with .NET Core and .NET Standard](https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-best-practices)
195+
- [Unit Testing Best Practices: How to Get the Most Out of Your Test Automation](https://dzone.com/articles/unit-testing-best-practices-how-to-get-the-most-ou)
196+
- [Arrange Act Assert](http://wiki.c2.com/?ArrangeActAssert)

0 commit comments

Comments
 (0)