📚
Docs
  • Welcome
  • Santhosh Thottingal
    • Coding
    • Software I use
    • Research Papers
    • Talks
    • Projects
    • In news
    • Ideas
    • Books
  • Malayalam Computing
    • Unicode
      • Syllable
      • Conjunct
      • Articles
    • Input methods
      • Inscript
      • Swanalekha
      • Handwriting Recognition
        • Procrustes Analysis
      • Proprietory Input Methods
      • What is a good input method?
      • Typewriter
    • Script Rendering
      • Orthography
      • Ya Ra Va Signs
      • U signs
    • Type Design
      • Color Fonts
      • Curves
      • Design Ideas
      • Manjari
        • Gallery
      • Chilanka
      • Gayathri
      • Customize Malayalam fonts in Linux
      • Articles
      • Tools
      • Type classification
        • Display typefaces
    • Spellcheck
      • History
      • Dictionary based approach
      • Nature of Malayalam spelling mistakes
      • Morphology analyser based approach
      • Tools and services
      • Links
    • Hyphenation
      • Web page
    • Typesetting
      • LaTeX
      • Scribus
      • PDF
      • XeTeX
      • Indesign
      • Markup languages
    • Speech Recognition
    • Speech Synthesis
      • Dhvani
    • Collation
    • Corpus
    • Morphology Analysis
      • Mlmorph
        • Snippets
      • Part of speech tagging
      • Morphology complexity
    • Named Entity Recognition
    • Numbers
      • Number spellout
      • Hindi
    • Machine Translation
      • Neural Machine Translation
    • Optical Character recognition
    • Transliteration
    • Digitization
    • NLP
      • Low resource languages
      • Natural Language Generation
    • Grammar analysis
      • Style checkers
    • Dictionary
      • Lexicon
    • Natural Language Understanding
    • Natural Language Generation
    • Swathanthra Malayalam Computing
    • Meta
      • Malayalam Sign Language
      • പദനിർമിതി
      • History
      • ലിപിപരിണാമം നിലച്ചുപോയോ?
      • ഭാഷാ പഠനം
      • ശ്രേഷ്ഠ ഭാഷ
      • Dictionary
    • Encyclopedia
    • Government
      • Script
      • കേരള ഭാഷാ ഇൻസ്റ്റിറ്റ്യൂട്ട്
  • Academic Research
    • Knowledge Dissemination
    • Research papers
    • Reproducible Research
  • Arts
  • Books
  • Blockchain
  • Computer Science
    • Data, Information, Knowledge
    • Theory of computation
    • Compilers and Interpreters
    • Graphics
    • Data Visualization
    • Parsers
    • Data Structures & Algorithms
    • Finite State Transducer
  • Cyberspace
    • Digital Governance
    • കേരളത്തിൽ
    • Online Abuse
  • Databases
  • Education
    • Finite State Transducers
    • Digital Education
    • Digital Literacy
      • ഡിജിറ്റൽ സാക്ഷരതാ പദ്ധതി
      • Resources
    • Remote Learning
    • General Learning
  • Entertainment
  • Frontend technology
    • Colors
    • Design systems
    • CSS
    • PWA
    • SPA
    • Vue
  • Generative Graphics
    • Drawbot
    • Matrix Digital Rain
  • Hardware
  • Internet
    • Etiquettes
    • Privacy
    • IPFS
    • Resilience
    • Decentralization
    • Network debugging tools
  • Knowledge Representation
  • Languages & Scripts
    • Arabic
    • Vattezhuth
  • Life
    • Digital Minimalism
  • Linux
  • Machine learning
    • Neural Networks
    • Dialog systems, Information retrieval
    • Large Language Models
    • Embedding
    • ML in Production
    • Retrieval Augmented Generation
  • Mathematics
  • Music
  • Parenting
  • Politics
    • Hatred, Hinduthwa, Nationalism
  • Productivity
  • Problem Solving
  • Science
  • Software Libraries
  • Software Engneering
    • Architecture
    • Product Management
    • Docker
    • Programming
      • Javascript
    • People
    • Performance
    • Code Review
  • Web3
  • Web Typography
  • Writing
  • പാട്ടുകൾ
    • കുട്ടിപ്പാട്ടുകൾ
  • മലയാളം അച്ചടി
  • ഗവേഷണപ്രബന്ധങ്ങൾ
Powered by GitBook
On this page
  • Principles
  • "Software"
  • Links

Software Engneering

PreviousSoftware LibrariesNextArchitecture

Last updated 3 years ago

Principles

  • -there are some things you can do to force issues up to the surface.

    • Dig out an old or cheap phone and try to run your app on it. Any major performance bottlenecks will suddenly become obvious

    • Pretend you’re a new developer in the team1. Delete the project from your development machine, clone the source code and set it up from scratch. Gaps in the Readme file and outdated setup scripts will soon become obvious

    • Try to add support for a completely different database. Details of your current database that have leaked into your data layer abstractions will soon become obvious

    • Port a few screens from your front-end app to a different platform. For example, write a command-line interface that reuses the business and data layers untouched. “Platform-agnostic” parts of the architecture might soon be shown up as anything-but

    • Start releasing beta versions of your mobile app every week. The painful parts of your monthly release process will start to

    • Put your software into the hands of a real user without telling them how to use it. Then carefully watch how they actually use it

  • - The Software Peter principle is used in to describe a dying project which has become too complex to be understood even by its own developers.

  • - (on ) Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.

  • Evidence-based Software Engineering -

  • DRY, or

    • is a tradeoff - ()

    • Pros and cons of DRY code - "one place to change a fact". things that tend to change together should be closer together.

"Software"

Links

The term software was first introduced by . He is also credited with coining the term ''

The first published use of the term "" in a computing context is often credited to American statistician , who published the term in "The Teaching of Concrete Mathematics," , January 9, 1958. Tukey wrote:

"Today the 'software' comprising the carefully planned interpretive routines, compilers, and other aspects of automative programming are at least as important to the modern electronic calculator as its 'hardware' of tubes, transistors, wires, tapes and the like" (, accessed 02-02-2010).

What distinguishes great software engineers? [] []

Forcing Functions
become less painful
Software Peter principle
software engineering
Zawinski's law of software envelopment
feature creap
http://www.knosof.co.uk/ESEUR/
Don't Repeat Yourself
Don't Repeat Yourself
https://orbifold.xyz/dry-trade-off.html
HN
https://qvault.io/2021/01/25/the-pros-and-cons-of-dry-code/
https://coderefinery.nz/2019/01/28/beyond-dry-why-redundancy-makes-your-code-more-robust-and-less-fragile/
John Tukey
bit
pdf
HN
software
John W. Tukey
American Mathematical Monthly
http://www.maa.org/mathland/mathtrek_7_31_00.html
Offsite Link
Offsite Link
Offsite Link
Offsite Link