9 Software Design Principles Every Developer Should Know:
1. ๐๐๐ (๐๐จ๐ง'๐ญ ๐๐๐ฉ๐๐๐ญ ๐๐จ๐ฎ๐ซ๐ฌ๐๐ฅ๐): Avoid duplicating code. Keep logic centralized to make your codebase easier to maintain.
2. ๐๐๐๐ (๐๐๐๐ฉ ๐๐ญ ๐๐ข๐ฆ๐ฉ๐ฅ๐, ๐๐ญ๐ฎ๐ฉ๐ข๐): Aim for simplicity in your solutions. Avoid overengineering or adding unnecessary layers.
3. ๐๐๐๐๐ (๐๐จ๐ฎ ๐๐ซ๐๐งโ๐ญ ๐๐จ๐ง๐ง๐ ๐๐๐๐ ๐๐ญ): Only build what you need today. Don't waste time on hypothetical features that may never be used.
4. LOD (๐๐๐ฐ ๐จ๐ ๐๐๐ฆ๐๐ญ๐๐ซ): Talk only to your immediate neighbors. Donโt chain too many calls.
๐๐๐๐๐ ๐๐ซ๐ข๐ง๐๐ข๐ฉ๐ฅ๐๐ฌ:
5. ๐๐๐ (๐๐ข๐ง๐ ๐ฅ๐ ๐๐๐ฌ๐ฉ๐จ๐ง๐ฌ๐ข๐๐ข๐ฅ๐ข๐ญ๐ฒ ๐๐ซ๐ข๐ง๐๐ข๐ฉ๐ฅ๐): A class should have one responsibility only. Keep each component focused and cohesive.
6. ๐๐๐ (๐๐ฉ๐๐ง/๐๐ฅ๐จ๐ฌ๐๐ ๐๐ซ๐ข๐ง๐๐ข๐ฉ๐ฅ๐): Code should be open for extension but closed for modification. Add new features without altering existing logic.
7. ๐๐๐ (๐๐ข๐ฌ๐ค๐จ๐ฏ ๐๐ฎ๐๐ฌ๐ญ๐ข๐ญ๐ฎ๐ญ๐ข๐จ๐ง ๐๐ซ๐ข๐ง๐๐ข๐ฉ๐ฅ๐): Subclasses must be usable in place of their parent classes without breaking functionality.
8. ๐๐๐ (๐๐ง๐ญ๐๐ซ๐๐๐๐ ๐๐๐ ๐ซ๐๐ ๐๐ญ๐ข๐จ๐ง ๐๐ซ๐ข๐ง๐๐ข๐ฉ๐ฅ๐): Design small, focused interfaces instead of large, general ones.
9. ๐๐๐ (๐๐๐ฉ๐๐ง๐๐๐ง๐๐ฒ ๐๐ง๐ฏ๐๐ซ๐ฌ๐ข๐จ๐ง ๐๐ซ๐ข๐ง๐๐ข๐ฉ๐ฅ๐): High-level modules should not depend on low-level modules. Both should depend on abstractions.
โป๏ธ Repost to help others in your network.
We use the -g option to the C/C compiler to add the debug information.
DWARF - Debugging With Attributed Record Formats - is a popular file format that supports source-level debugging, and it's not limited to C/C .
Read its specification and how the binary addresses get translated back to the code - it's all very exciting.
Latest draft spec:
snapshots.sourceware.org/dwaโฆ
Official website: dwarfstd.org
Intro PDF - dwarfstd.org/doc/Debugging%2โฆ
JavaFX is a powerful graphical UI toolkit for building desktop and mobile applications. ๐ช
This #JavaOne session explores the new and exciting features we've developed over the past couple of years, culminating with the release of JavaFX 24. social.ora.cl/6013NYzI5
The goal is to make the little secret public: @openQuanta will quietly grow across social media and is ready to break every mobile constraint. The story is solid, and this is only the beginning
Learn C once deeply, and around ~80% of programming concepts become instantly transferable to any other language, trust me.
whether it's JS/TS, Python, Go, Rust, C etc.
We need your help!
Another 'to-do' marked off the list!
Would like some helpers with this please. You don't have to be a code genius, just some basic Git knowledge and Markdown.
I've been using ChatGPT to help, so anyone can do this!
wiki.linuxliteos.com/
>dependency hell
>unbearably slow
>used exclusively by nocoders
>github flooded with jeetcode
>bottom line retarded syntax clearly created by a nocoder
>valid empty space indentations as PART OF A FUCKING SYNTAX
>Used almost exclusively for AI ... by street shitters / low IQ sub-par developers
Why the fuck did it happen ?
Here's an updated list of C/C programs that are totally memory safe because I ported then to Fil-C. In many cases they requires zero changes or just small cosmetic changes!
- musl libc
- libc (C )
- libc abi (C )
- WG14 signals
- libuev
- icu4c (C )
- zlib
- bzip2
- bzip3
- xzutils
- pcre
- pcre2
- jpeg-6b
- ncurses (some C )
- libedit
- openssl
- curl
- openssh
- mg
- tcl
- sqlite
- cpython
- zsh
- lua
- simdutf (C )
- quickjs
- simdjson (C )
- ada-url (C )
- libffi
- zstandard
- sudo
That's not even counting stuff that other folks have gotten to work in Fil-C but that I haven't had a chance to include in my corpus. It's also not counting all of the various programming language shootout tests that just work in Fil-C.
Sakana AI developed a new coding agent, ALE-Agent, trained to solve NP-hard optimization problems.
Our agent participated in a live coding competition, the challenging AtCoder Heuristic Contest, and ranked #21 out of 1,000 human participants!
Learn more: sakana.ai/ale-bench/
Both of our previous language server attempts have been bad. Unstable and taking up lots of resources.
A new, pure V language server is coming this week.
It's very stable and uses <50MB of RAM.
No more Tree Sitter and Rust dependencies. It's in pure V!