Это старая версия документа.
Эффективный программинг
Linux/bash
- navigate with pushd <path>, popd
- drag objects from Nautilus to terminal
- use vars
denis@denishp2-ub:/$ a='cd /etc' denis@denishp2-ub:/$ echo $a cd /etc denis@denishp2-ub:/$ $a denis@denishp2-ub:/etc$
- use
~/.bash_aliases
(create if doesn't exist)alias robo='cd ~/PrjEclipse/jroboplc'
- use Groovy as alternative to bash
- use Ruby as alternative to bash
Eclipse
- use shortcuts list (Ctrl+Shift+L)
- use Key Promoter plugin. Help-Install New Software → http://update.mousefeed.com/
- cool shortcuts:
Ctrl-Shift-T Goto to class (use capitals) Ctrl-Shift-R Goto to file Ctrl-O Symbol list Ctrl-J Incremental search Ctrl-E Recently edited files Alt-Shift-L Introduce variable Alt-Shift-Up Escalating selection
Automation
- Gant (build tool) http://gant.codehaus.org/
- Gradle (build tool) http://www.gradle.org/
- Selenium (web applications testing)
Codewriting
- plenty of short methods against few huge ones. Three lines of code for a method doesn't take much time to figure out what that method does. If you put lots of comments into your method it is a sign to split it up.
- FindBugs - static analysis tool (java)
- PMD - source analysis tool (java)
- Panopticode - bunch of analysis tools (java)
- Cuberture - static analysis (java/groovy)
Points
- Prefer typing over mousing.
- YAGNI - “YOU AIN’T GONNA NEED IT”
- Don’t pay complexity tax unless you absolutely must.
- Maximize work on essential complexity; kill accidental complexity.
- Don’t pay complexity tax unless you absolutely must.
- Keep knowledge as plain text
Books
- «The Mythical Man-Month»
- Hunt and Thomas’s «The Pragmatic Programmer» (Addison-Wesley)
- Beck’s «Smalltalk Best Practice Patterns» (Prentice Hall)