Это старая версия документа.
====== Эффективный программинг ====== ===== Linux/bash ===== * navigate with pushd <path>, popd * drag objects from Nautilus to terminal * use vars<code> denis@denishp2-ub:/$ a='cd /etc' denis@denishp2-ub:/$ echo $a cd /etc denis@denishp2-ub:/$ $a denis@denishp2-ub:/etc$ </code> * use ''~/.bash_aliases'' (create if doesn't exist)<code> alias robo='cd ~/PrjEclipse/jroboplc'</code> * 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:<code> 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</code> * [[http://www.prom-auto.ru/articles/eclipse/eclipse.keys.pdf|other shortcuts]] ===== 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)