Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
dev:other:efficientprog [2012/01/21 18:11] jamis7005 [Eclipse] |
dev:other:efficientprog [2012/09/24 18:52] (текущий) jamis7005 [Eclipse] |
||
|---|---|---|---|
| Строка 11: | Строка 11: | ||
| denis@denishp2-ub:/$ $a | denis@denishp2-ub:/$ $a | ||
| denis@denishp2-ub:/etc$ </code> | 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 ===== | + | Useful findings: |
| - | * use shortcuts list (Ctrl+Shift+L) | + | * find and replace text in group of files:<code> |
| - | * use Key Promoter plugin. Help-Install New Software -> http://update.mousefeed.com/ | + | find . -type f -exec sed -i "s/old_text/new_text/g" {} \;</code> |
| - | * cool shortcuts:<code> | + | |
| - | Ctrl-Shift-T Goto to class (use capitals) | + | |
| - | 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. | ||
| + | * Take the time to learn all the hidden keyboard shortcuts of your universe. | ||
| + | * For any symmetric operation on multiple lines of text, find a pattern and record a macro. | ||
| + | * Don’t type the same commands over and over again. | ||
| + | * Spend a little time each day to make every day more productive. | ||
| + | * Replace file hierarchies with search. | ||
| + | * Don’t spend time doing by hand what you can automate. | ||
| + | * Performing simple, repetitive tasks squanders your concentration. | ||
| + | * Timebox speculative development. | ||
| + | * Use virtualization to canonicalize dependencies for your projects. | ||
| + | * Out-of-date documentation is worse than none because it is actively misleading. | ||
| + | * Always keep “living” documentation. | ||
| + | * Whiteboard + digital camera trumps a CASE tool. | ||
| + | * Repetition is the single most diminishing force in software development. | ||
| + | * Testing is the engineering rigor of software development. | ||
| + | * Refactor comments to methods. | ||
| + | * Static analysis tools represent cheap verification. | ||
| + | * Don’t create global variables, even the object kind. | ||
| + | * 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. | ||
| + | * Encapsulate all implementation details away from public methods. | ||
| + | * Find your perfect editor and learn it inside and out. | ||
| + | * Good knowledge of regular expressions can save orders of magnitude of effort. | ||
| + | * Use a “real” scripting language for automation chores. | ||
| + | * 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) | ||