Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
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)
  
  
  
dev/other/efficientprog.1327155067.txt.gz · Последние изменения: 2012/01/21 18:11 — jamis7005
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0