»If it takes more than five clicks, learn the command line.« —Shawn Anderson, http://blog.AdminArsenal.com... Ok, guess, I'll improve on that:-)...
"There are only two real problems in computer science: cache management and naming." -Phil Karlton, Netscape programmer
<+kritical> christin: you need to learn how to figure out stuff yourself.
<+Christin1> how do i do that —http://bash.org/?3936
„Solve the problem, people know they have, not the one you think they have.“
Understanding Software: Max Kanat-Alexander. Listening is a crucial skill in Software development.
"We cannot solve our problems with the same thinking we used when we created them." Albert Einstein
Remember Murphy’s law of program size before Moore came up? „Programs will grow to fill all available complile and link time.“:D Welcome to miniaturization of technology…
If you have to deal with resources outside your programme, i.e. files, servers or even USB peripherals, then you have to reckon with exceptions.
Passig, Kathrin; Jander, Johannes. Programming less bad-ly (German Edition) (p.392).
All programmers are playwrights, and all computers are lousy actors.:D
"Don't comment on bad code - rewrite it." Brian W. Kernighand and P.J. Plaugher
„Too many cooks spoil the broth.“
Manager-engineer teams need to be careful not to fall into this proverb by being careful not to:-> Assume other ‚cooks‘ already did sth, when they actually didn’t and (1/2))
-> Assume that every suggestion needs to be accepted instead of enforcing good ideas transparently (cf. Nolasco, F. Professional Front-End Architecture) (2/2)
„Bugs are never so obvious as when you’re the one responsible for them.“ Ryan Dahl, 10 Things I Regret about Node.js, JSConf EU 2018
Systems Engineering Process (SIMILAR):
State the problem
Investigate alternatives
Model system
Integrate
Launch the system
Assess performance
Re-evaluate
(Bahill&Gissing, '98)
If it ain't broken, don't fix it. The perfect solution might not always be the right one.
Passig, Kathrin; Jander, Johannes. Programming less badly (German Edition) (p.102).
Legibility, comprehensibility, distinctiveness.
If the name requires a comment explaining that the first letter of IllII is a capital I and not a lowercase Ell, but is followed by two lowercase Ells and a Roman numeral II, then there is room for improvement.1/2
Is there any chance that the name will be understood correctly when shouted through a crowded bar or when discussing the code on a train ride with mediocre cell phone reception? Passig, Kathrin; Jander, Johannes. Programming less badly (German Edition) (p.35). O'Reilly Media 2/2
In German, the word softwareentwickler for sw-developer makes it seem as if one is tying apart a knotted ball of code. (Jan Varwig,
@agento
, Twitter, 4.08.13)
Tipp from ‚SW-Architecture -The Hard Parts‘ (Ford et al.) „Don’t allow others to force you into evangelizing something - bring it back to trade-offs.“ -> more objective, 1/2
„An architect adds real value to an organization not by chasing silver bullet after silver bullet but rather by honing their skills at analyzing the trade-offs as they appear.“ 2/2
"I regularly have to google the basic syntax of a language I've used every day for 10 years. #coderconfessions" -
@HackerNewsOnion
/ Twitter, July 10, 2013 In recent years, geek circles have often cited the "Dunning-Kruger effect"1/2
according to which incompetent people tend to overestimate their own abilities. Follow-up studies suggest that in reality the situation is simpler: People are generally poor at assessing their own competence even halfway accurately. Passig, K.; Jander, J. Progr. less badly 2/2
Even if you can zoom into the system as deep as you like by refinement, you should not get too detailed in the context of an architecture documentation. It becomes very time-consuming to keep the design consistent with the implementation.
books.google.comSoftware-Architekturen dokumentieren und kommunizieren
Maybe it will help if you get into the habit of using VariableWhichIDontKnowHowToNameCurrentlySoINeedToThinkAboutABetterNameLater as a temporary name, because it is so long that you might think of a better name as you type.
oreilly.deWeniger schlecht programmieren • O'ReillyDer unorthodoxe Coding-Ratgeber Aus Fehlern anderer lernen – mit Sachverstand und Witz! Von Coding-Grundlagen über die Fehlersuche bis zu Tools: Die Autor*innen begleiten durch den kompletten...
When asking a community about a programming issue think of it as similar to an emergency call only w/o injured people - the always same questions: Who are you? What have you done? When did you do it? What happened? What did you expect?
oreilly.deWeniger schlecht programmieren • O'ReillyDer unorthodoxe Coding-Ratgeber Aus Fehlern anderer lernen – mit Sachverstand und Witz! Von Coding-Grundlagen über die Fehlersuche bis zu Tools: Die Autor*innen begleiten durch den kompletten...
Timeouts should be combined with re-try mechanisms. (Can be called several times without causing further problems.)
“Code is like humor. When you have to explain it, it’s bad.” – Cory House
“An hour of reading code can save you a minute of reading documentation." -Diomidis Spinellis, "Code Reading"
Passig, Kathrin; Jander, Johannes. Programming less badly (German Edition) (p.79). O'Reilly Media. Kindle version.
If you slowly descend with development teams from the technical layering to the functional breakdown to the class level, you hit the real pain points of the system. 1/2
Classes are stuck in highly coupled cycles, are difficult to understand, adaptations are costly, and the testing effort is high.
Lilienthal, Carola. Long-lived software architectures: analyzing, limiting, and reducing technical debt (German Edition) (p.161). dpunkt.verlag. 2/2
If a function starts with get, experienced programmers read from it that the process in question will be relatively quick and effortless. 1/3
If this is not the case, for example because the function takes minutes to search the net or the entire hard disk, it is better to choose a verb that sounds like effort, 2/3
for example compute, acquire, fetch, download or retrieve. This helps more to assess the function correctly.
Passig, Kathrin; Jander, Johannes. Programming less badly (German Edition) (p.42). O'Reilly Media. Kindle version. 3/3
"In fact, when you force yourself to write comments for the code, you even begin to understand what you are doing."
Christian Heller /
@plomlompom
Twitter, December 3, 2009
„Objects are abstractions of processing. Threads are abstractions of time sequences.“ James O. Coplien, private message, G. L.Schuchert Concurrency in Robert C. Martin, Clean Code
"In programming, the hard part isn't solving problems, but deciding what problems to
solve."- Paul Graham cited by
@CodeWisdom
Even when coding, stay on the good side of power.
Passig et al (Programming Less Badly, 2013) compare software development to trekking when it comes to debugging. It is not so dangerous in the sense of dehydrating or sudden changes of weather. (1/2)
Also, not all trekking tips are applicable to dealing with bugs in software. For example, it doesn't help to tell the time and destination to a hut host, because if you get tangled up in the code, no one will send the mountain rescue.:-D (2/2)
“Optimism is an occupational hazard of programming: feedback is the treatment. “ Kent Beck
Writing software "First make it work.” You are out of business if it doesn’t work. 2. “Then make it right.” Refactor the code so that you and others can understand it and evolve it as needs change or are better understood. 3. “Then make it fast.” 1/2
Refactor the code for “needed” performance.
R. C. Martin, Clean Architecture according to Kent Beck 2/2
Although software does not wear out, it can be destroyed from within by unmanaged dependencies on firmware and hardware.
R. C. Martin, clean architecture
'Don't marry the framework!'
R. C. Martin, Clean Architecture
A useful verb in the context of Boolean variables is toggle. It switches from one state to the opposite state and works broadly like a standard light switch. 1/2
Two calls to toggle restore the initial state. Examples: toggleVisibility, toggleExpertMode. Passig, K.; Jander, J.. Programming less badly. 2/2