software-design   992

« earlier    

Repeat yourself, do more than one thing, and rewrite everything
"Usually, a rewrite is only a practical option when it’s the only option left. Technical debt, or code the seniors wrote that we can’t be rude about, accrues until all change becomes hazardous. It is only when the system is at breaking point that a rewrite is even considered an option. Sometimes the reasons can be less dramatic: an API is being switched off, a startup has taken a beautiful journey, or there’s a new fashion in town and orders from the top to chase it. Rewrites can happen to appease a programmer too—rewarding good teamwork with a solo project."
a:Thomas-Edward-Figg  p:Programming-Is-Terrible  d:2018.08.05  w:2500  instructional  programming  software-design  software-development  from instapaper
21 days ago by bankbryan
The presence prison
"Are there exceptions? Of course. It might be good to know who’s around in a true emergency, but 1% occasions like that shouldn’t drive policy 99% of the time. And there are times where certain teams need to make sure someone’s around so there are no gaps in customer service coverage, but those are specialized cases best handled by communication, not an ambiguous colored dot next to someone’s name."
a:Jason-Fried  p:Signal-v.-Noise  d:2017.12.21  w:1000  work  software-design  productivity  from twitter
23 days ago by bankbryan
Michael Feathers: A Type Driven Approach to Functional Design
InfoQ just put up a presentation I did at StrangeLoop last year. It's a bit fuzzy as my talks go because I'm describing a way of thinking about design while doing it. The crux involves thinking about the shapes of...
software-design  types  strong-types  functionalprogramming  functional-programming 
7 weeks ago by lenards
Write code that's easy to delete, and easy to debug too.
"Writing robust software begins with writing software that assumed it crashed the last time it ran, and crashing whenever it doesn’t know the right thing to do. The best thing about throwing an exception over leaving a comment like 'This Shouldn’t Happen', is that when it inevitably does happen, you get a head-start on debugging your code."
a:Thomas-Edward-Figg  p:Programming-Is-Terrible  d:2018.05.14  w:3000  instructional  programming  software-design  process  from instapaper
7 weeks ago by bankbryan

« earlier    

related tags

***  2018-08-06  2018  a/b-testing  a:dan-luu★★  a:jason-fried  a:tef  a:thomas-edward-figg  ab-testing  abstract-syntax-trees  abstraction-layer  abstraction  abstractions  advice  agile  algebraic-data-types  analysis  api-design  arch  architecture  article  asynchronous-programming  automatic-verification  best-practices  bestpractices  blog  books  c++  career  clean-code  clojure  code-design  code  compilers  compositionality  computer-science  computing  concurrent-programming  configuration  consulting  context  craft  cryptograhy  culture  d:2017.06.28  d:2017.12.21  d:2017.12  d:2018.05.14  d:2018.08.05  data-oriented-design  database  ddd  debugging  delegation  dependency-injection  design-patterns  design  development  distributed-systems  domain  dry  ecmascript  education-methods  education  elixir  elixor  engineering  entity–component–system  erlang  europe  facade  free-monad  free-software  front-end-architecture  front-end  functional-programming  functionalprogramming  golang  gold-learning-star  gtd  hal  hardware  haskell  higher-order-components  infrastructure  instructional  interfaces  java  javascript  kevin-lynagh  legacy-code  machine-learning  maps  microservices  minimalism  modularity  mvc  naming  netflix  observability  omni-mate  oop  optimization  options  os  p:dan-luu★★  p:programming-is-terrible  p:signal-v.-noise  patterns  personal-archive  phoenix  polymorphism  process  product-design  productivity  program-configuration  programming-is-terrible  programming-language-design  programming  protocols  queues  rails  reactjs  recompose  recursion  refactor  refactoring  reference  reliability  roguelike-development  ruby  security  simulations  skill  software-architecture  software-development  software-engineering  software-management  software-testing  state-machines  state-management  static-typing  stream-processing  streaming-video  strong-types  structure  style  sweng  synthetic-programming  system-design  tdd  thought-provoking  time  tips  tla+  to:read  tools  travel  types  uml  unit-testing  unix  video  videos-to-watch  w:1000  w:2500  w:3000  w:5000  web-app  web-design  wham  work 

Copy this bookmark: