Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
dev:other:efficientprog [2012/01/22 16:59]
jamis7005 [Linux/bash]
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]]+
  
  
Строка 36: Строка 28:
   * Gradle (build tool) http://​www.gradle.org/​   * Gradle (build tool) http://​www.gradle.org/​
   * Selenium (web applications testing)   * 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.1327237160.txt.gz · Последние изменения: 2012/01/22 16:59 — jamis7005
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0