Úvod do softvérového inžinierstva a DevOps
Sergej Chodarev (sergejx.net)
The classic software startup writes code to solve users' problems. If AI makes writing code more of a commodity, understanding users' problems will become the most important component of starting a startup. But it already is.
— Paul Graham (@paulg) February 10, 2025
The hardest single part of building a software system is deciding precisely what to build.
– Frederick P. Brooks, Jr., „No Silver Bullet: Essence and Accidents of Software Engineering“ (1987)
Software entities are more complex for their size than perhaps any other human construct because no two parts are alike (at least above the statement level). If they are, we make the two similar parts into a subroutine-open or closed. In this respect, software systems differ profoundly from computers, buildings, or automobiles, where repeated elements abound.
– Frederick P. Brooks, Jr., „No Silver Bullet“ (1987)
All successful software gets changed.
– Frederick P. Brooks, Jr., „No Silver Bullet“ (1987)
gcc -o program program.c
python program.py
npm run build
maven compile
make
...
claude
codex
gemini
copilot
...
Software engineering is the application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software.
– David Farley, „Modern Software Engineering“
So, we must become experts at learning and experts at managing complexity.
— David Farley, „Modern Software Engineering“
There is no single development, in either technology or management technique, which by itself promises even one order of magnitude improvement within a decade in productivity, in reliability, in simplicity.
— Frederick P. Brooks, Jr., „No Silver Bullet“
Why spend your life developing software unless you care about doing it well?
— Andy Hunt and Dave Thomas, „The Pragmatic Programmer“
Turn off the autopilot and take control. Constantly critique and appraise your work.
— Andy Hunt and Dave Thomas, „The Pragmatic Programmer“
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
That is, while there is value in the items on the right, we value the items on the left more.
DevOps is the integration and automation of software development and information technology operations. DevOps encompasses necessary tasks of software development and can lead to shortening development time and improving the development life cycle.
The primary characteristic of DevOps culture is increased collaboration between the roles of development and operations.
– Rouan Wilsenach: Dev Ops Culture
Automation is a cornerstone of the DevOps movement and facilitates collaboration. Automating tasks such as testing, configuration and deployment frees people up to focus on other valuable activities and reduces the chance of human error. A helpful side effect of automation is that automated scripts and tests serve as useful, always up-to-date documentation of the system.
– Rouan Wilsenach: Dev Ops Culture
gcc, javac, tsc – prekladáčemake, maven - automatizácia zostavenianpm, pip, uv – správa balíkov a závislostígit – správa verziíssh – správa vzdialených serverovdocker – práca s kontajnermi[sergej@vostok ~]$
↑ ↑ ↑
| | `--- Aktuálny pracovný adresár
| `-------- Názov počítača
`--------------- Meno používaeľa
cd – zmena pracovného adresára (change directory)pwd – zistenie pracovného adresára (print working directory)echo $HOMEgetenv("HOME")printenvPATH: (Unix) alebo ; (Windows)export EDITOR=vim
export PATH=$HOME/bin:$PATH
~/.bash_profile.zshenv