Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
dev:other:efficientprog [2012/01/27 13:47] jamis7005 [Codewriting] |
dev:other:efficientprog [2012/09/24 18:52] (текущий) jamis7005 [Eclipse] |
||
---|---|---|---|
Строка 16: | Строка 16: | ||
* use Ruby 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-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]] | + | |
Строка 45: | Строка 37: | ||
===== Points ===== | ===== Points ===== | ||
- | + | * Prefer typing over mousing. | |
- | * YAGNI - “Y OU A IN ’ T G ONNA N EED I T .” | + | * 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. | * Don’t pay complexity tax unless you absolutely must. | ||
* Maximize work on essential complexity; kill accidental complexity. | * Maximize work on essential complexity; kill accidental complexity. | ||
* Don’t pay complexity tax unless you absolutely must. | * 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) | ||
+ | |||
+ | |||