Reddit Programming – Telegram
Reddit Programming
211 subscribers
1.22K photos
125K links
I will send you newest post from subreddit /r/programming
Download Telegram
Is this code clean? A critical look at Clean Code 2nd Edition
https://www.reddit.com/r/programming/comments/1pc5xyy/is_this_code_clean_a_critical_look_at_clean_code/

<!-- SC_OFF -->I read Clean Code 2nd edition wondering if Martin had evolved past the old critiques.
After Part 1, he mostly hasn’t — the core style and assumptions are basically unchanged. <!-- SC_ON --> submitted by /u/Soggy_Sprinkles3619 (https://www.reddit.com/user/Soggy_Sprinkles3619)
[link] (https://bugzmanov.github.io/cleancode-critique/clean_code_second_edition_review.html) [comments] (https://www.reddit.com/r/programming/comments/1pc5xyy/is_this_code_clean_a_critical_look_at_clean_code/)
Advanced, Overlooked Python Typing
https://www.reddit.com/r/programming/comments/1pc9uql/advanced_overlooked_python_typing/

<!-- SC_OFF -->While quantitative research in software engineering is difficult to trust most of the time, some studies claim that type checking can reduce bugs by about 15% in Python. This post covers advanced typing features such as never types, type guards, concatenate, etc., that are often overlooked but can make a codebase more maintainable and easier to work with <!-- SC_ON --> submitted by /u/Martynoas (https://www.reddit.com/user/Martynoas)
[link] (https://martynassubonis.substack.com/p/advanced-overlooked-python-typing) [comments] (https://www.reddit.com/r/programming/comments/1pc9uql/advanced_overlooked_python_typing/)
Choosing your starting line in enterprise architecture
https://www.reddit.com/r/programming/comments/1pcdc6b/choosing_your_starting_line_in_enterprise/

<!-- SC_OFF -->If you start up an enterprise architecture office, you have two types of strategies people use. Some people start by mapping everything that exists, in whatever state it happens to be. They then assess what they have and start building a gap analysis towards a better, more uniform state. The other group of people start at the end point and work their way back. They sketch out the ideal state and map out the bare essentials towards getting there. The big upside of the AS-IS approach is that you are working with terms and information that is familiar to the organization. People will recognize the works you are linking applications and business units to, as they probably use them themselves. The idea of skipping the AS-IS altogether comes down to: why base our architecture on structures that are not only, very low quality, they are also probably not carried in the organization. The architecture maturity of the organization is probably very low, so why take on the burden. My experiences has taught me mainly: If something already exists and people use it, adopt it. If everything is a mess and nobody agrees on anything, skip the archaeology and design something that makes sense to you. <!-- SC_ON --> submitted by /u/GeneralZiltoid (https://www.reddit.com/user/GeneralZiltoid)
[link] (https://frederickvanbrabant.com/blog/2025-11-28-choosing-your-starting-line-in-enterprise-architecture/) [comments] (https://www.reddit.com/r/programming/comments/1pcdc6b/choosing_your_starting_line_in_enterprise/)
The Ultimate Git Tutorial (Git 2.52)
https://www.reddit.com/r/programming/comments/1pce50w/the_ultimate_git_tutorial_git_252/

<!-- SC_OFF -->The ultimate Git tutorial (https://jhcarl0814.github.io/ClosedAI/git/git.html) has been updated (from Git 2.51 to Git 2.52). Previous post from Git 2.47 era introducing What & Why and Features for this tutorial. What & Why: The ultimate tutorial for beginners to thoroughly understand Git, introducing concepts/terminologies in a pedagogically sound order, illustrating command options and their combinations/interactions with examples. This way, learning Git no longer feels like a lost cause. You'll be able to spot, solve or prevent problems others can't, so you won't feel out of control whenever a problem arises. The ultimate knowledge base site for experienced users, grouping command options into intuitive categories for easy discovery. FAQ Q1: There is too much content, while I somehow expect to read only a portion when facing a lot of content, selectively. How do I use the page to learn Git?
A1: Unselectively read all the concept links and blue command links in DOM order. Blue command links introduce most commonly used Git commands and contain examples for command options. For example, click to read the definition of "object database", then "file system", and so on. Q2: This doesn't look like a tutorial, as tutorials should look easy, very very easy, want easy things you know. / Where is the tutorial? I only see many links. / I think learning to use a revision control system should only be a small part of my programming job, so it should not take tremendous amount of time. / I just want to get job done quickly and then run away, sure no one wants to figure out what is working or how it is working behind the scenes. / I think revision control systems should be easy because it's not programming proper. Look at XXX revision control system, it's easy (but apparently nobody uses it)! / Want easy things, very very easy, tremendously easy.
A2: Here you go. (https://www.reddit.com/r/git/comments/1ftj350/mastering_git_a_comprehensive_git_cheatsheet_for/) Oh wait. (https://medium.com/@amitmishraam941/mastering-git-a-comprehensive-command-cheatsheet-95ed1db88847) Q3: I used the tutorials in A2 but don't know what to do whenever I want to do something with Git. / I used the tutorials in A2 but screwed up at work so now I'm staring at the screen in a daze. / I should be able to do what I want after reading some tremendously easy tutorials, but I can't. Now I need to continue looking for easy tutorials that is easy for beginners. / How to use a revision control system if I cannot?
A3: Here are more easy tutorials. (https://www.google.com/search?q=mastering+git+a+comprehensive+git+cheatsheet+for) Q4: This tutorial is unintuitive, arcane and overwhelming.
A4: So people who can't think abstractly and deeply can be shut out. Q5: Why not just RTFM (https://git-scm.com/docs)? / Git is easy, so those who feel it difficult should not go programming. / People should be able to look for information themselves to learn programming so there is no need to make a page like this. / (And other attempts to keep knowledge scattered all around the Internet so you would spend all your life collecting it, this way you don't have time to think about things like Illu*******, so good!🙄)
A5: Knowledge gathering and organization is to save people's time. If you don't take other people's time seriously, they won't take your time seriously either. Q6: http://git-scm.com/book / http://gitimmersion.com/ / I can't see the links in the side bar of r/git (https://www.reddit.com/r/git) 😭😭😭, so can you repeat them here? / (And links to other tutorials, no idea why they don't make a standalone post.)
A6: Pro Git, Git Ready, Git Reference, Git Magic, Git for Computer Scientists, A Visual Git Reference, Git Primer, Git Immersion, Think Like a Git, Git Workflows, Git on Stack Overflow, Getting Git Right, The Git Parable. Updates: Changed explanation of interactions between git pull (unspecified)/--rebase[=]/--no-rebase, branch..rebase, pull.rebase, git pull (unspecified)/--ff-only/--no-ff/--ff, pull.ff, merge.ff and their default values from being "as vague as official documentation" to being clear. Added links to git repo and git last-modified. Added ui and examples for git diff --max-depth= and ui for git log --max-depth=. Didn't add examples for :(optional) because of its bug. Added links to git push page's denoscription section as it now lists how some default values are calculated. Added links to "upstream branch" from git fetch page and "push rules" from git push page. Added links to "how to force tracking not-tracked and ignored files" and "how to force adding a submodule whose path-derived name is occupied". Not my Updates: The ANSI to HTML functionality will be a built-in feature of mintty (https://github.com/mintty/mintty/issues/1336 ). Currently the page uses a third-party solution and will keep lagging. The official documentation is being improved. The updates to git push (https://github.com/gitgitgadget/git/commits/master/Documentation/git-push.adoc?since=2025-09-21&until=2025-12-02 ) and git pull (https://github.com/gitgitgadget/git/commits/master/Documentation/git-pull.adoc?since=2025-09-21&until=2025-12-02 ) clarify how the default values for and ... are calculated. The website also displays definitions of some terms on pointer hover (https://github.com/git/git-scm.com/commit/863935e61e383005eb3cbeb097b9ae17af078e1d ). If (in the future) the official website can further provide examples to demonstrate every option for each command, I would be happy to decommission my page. <!-- SC_ON --> submitted by /u/jhcarl0814 (https://www.reddit.com/user/jhcarl0814)
[link] (https://jhcarl0814.github.io/ClosedAI/git/git.html) [comments] (https://www.reddit.com/r/programming/comments/1pce50w/the_ultimate_git_tutorial_git_252/)
Proof-of-concept for CVE-2025-48593: No, this Android Bluetooth issue does NOT affect your phone or tablet
https://www.reddit.com/r/programming/comments/1pcjqo5/proofofconcept_for_cve202548593_no_this_android/

<!-- SC_OFF -->An issue patched in Android's November Security Bulletin that only affected devices which act as Bluetooth headphones, such as smartwatches, smart glasses, and cars. <!-- SC_ON --> submitted by /u/NXGZ (https://www.reddit.com/user/NXGZ)
[link] (https://worthdoingbadly.com/bluetooth/) [comments] (https://www.reddit.com/r/programming/comments/1pcjqo5/proofofconcept_for_cve202548593_no_this_android/)
Amber the programming language compiled to Bash, 0.5.1 release
https://www.reddit.com/r/programming/comments/1pd128h/amber_the_programming_language_compiled_to_bash/

<!-- SC_OFF -->The new 0.5.1 release includes a lot of new stuff to the compiler, from new syntax, stdlib functions, features and so on. PS: I am one of the co-maintainer, so for any question I am here :-) <!-- SC_ON --> submitted by /u/Mte90 (https://www.reddit.com/user/Mte90)
[link] (https://docs.amber-lang.com/getting_started/whats_new) [comments] (https://www.reddit.com/r/programming/comments/1pd128h/amber_the_programming_language_compiled_to_bash/)
Modular Monolith and Microservices: Modularity is what truly matters
https://www.reddit.com/r/programming/comments/1pd4daj/modular_monolith_and_microservices_modularity_is/

<!-- SC_OFF -->Modularity is a quality that should be treated mostly independent of how many deployable units of software we choose to have. We should aim at splitting our systems into logical, functional modules as independent of each other as possible - in the ideal world, every module should not know anything about any other module and have everything that is needed to serve its functionality. In the real world that is usually not fully possible, but we should have these ideals as our guiding principles and strive for high cohesion and low/loose coupling. Let's work on the example and say that we have a system - "Curious Notes to the Interesting Quotes" - where users can add notes to famous quotes and sayings. One possible design is to split it into the following modules:
- users: responsible for the creation of new users, managing accounts and authorizing/authenticating them
- quotes: responsible for the management of quotes by the special, privileged users
- notes: responsible for adding notes to quotes by the users, also allowing them to edit, delete and like them Modules dependencies:
- users - no dependencies
- quotes - depends on users for asking whether a certain user is allowed to add/edit/delete quotes
- notes - depends on users for asking whether a certain user is allowed to add/edit/delete a note, depends on quotes to know whether a particular quote exists These are our modules and their dependencies. We should treat this logical division mostly independently of our physical architecture choice. We might have a Modular Monolith with these three modules as just separate folders or fully isolated and independently versioned packages. We can also go for three (Micro)services that communicate over the wire, synchronously or asynchronously. This physical division of a system into one or multiple units of deployment should be a secondary, not primary, factor when it comes to system design. The driving factor should be the understanding of our domain and functional requirements, concepts that we have there and the dependencies that occur between them. Only having sorted this out, we should think about non-functional, performance and resource utilization related factors that might, or might not, change the implementation details of our initial design. <!-- SC_ON --> submitted by /u/BinaryIgor (https://www.reddit.com/user/BinaryIgor)
[link] (https://binaryigor.com/modular-monolith-and-microservices-modularity-is-what-truly-matters.html) [comments] (https://www.reddit.com/r/programming/comments/1pd4daj/modular_monolith_and_microservices_modularity_is/)