background preloader

Bbatsov/ruby-style-guide - GitHub

Bbatsov/ruby-style-guide - GitHub
Related:  PL

Programming Ruby 1.9 About this Book 944 pages Published: Release: P5.0 (2012-10-16) ISBN: 978-1-93435-608-1 Would you like to go from first idea to working code much, much faster? Do you currently spend more time satisfying the compiler instead of your clients or end users? Ruby is a fully object-oriented language, much like the classic object-oriented language, Smalltalk. The combination of the power of a pure object-oriented language with the convenience of a scripting language makes Ruby a favorite tool of intelligent, forward-thinking programmers. The Pickaxe contains four major sections: An acclaimed tutorial on using Ruby. This is the reference manual for Ruby, including a description of all the standard library modules, a complete reference to all built-in classes and modules (including all the new and changed methods introduced by Ruby 1.9, 1.9.2, and 1.9.3¹). What You Need This book assumes you have a basic understanding of object-oriented programming. About the Author Upcoming Author Events

bbatsov/rails-style-guide PHP coding standards - Coding Standards and Best Programming Practices for PHP Contents Naming Conventions and Standards Code Indentation Generally you should use the Allman style ( of indenting code. <? This will differ slightly from the indentation style mainly used for Javascript (like K&R), but there are valid cases where the Allman style would cause syntactic differences in code execution (such as implied return values in Javascript because the semicolon is optional). <? Also, tabs should be used to indent code rather than spaces. Brace Usage If your if() or loop only contains one executable statement, the containing braces are optional, and should be omitted: <? The statement should still be indented as usual, and kept on a separate line for readability. Trailing Whitespace Avoid this if you can. Naming Conventions <? But the following are not: <? <? Code Commenting Below is an example: <? String Concatenation <? Good Programming Practices KISS Principles <? <? <? <? <? <? <?

Variable/optional parameter methods, symbols and ruby « The Plan A First if you want only for optional parameter in a method, just see the next two examples : def foo(bar=:hello) puts bar end foo #=> hello foo bye #=> bye The second example : def add_book(title=>"no title") arg={:, :author=>"anonymous", :language=>"esperanto"} arg.merge! Sometimes is usefull to have an optional/variable parameters method, . For example we want to add a book to our database, But we don’t want to write every single attribute, is the attribute is not present then is initialize with a default value. add_book :title=>"El quijote", :author=> "Miguel de Cervantes" add_book :title=>"El quijote", :author=> "Miguel de Cervantes", :tag=>"novel" add_book :title=>"El quijote" add_book :title=>"hogehoge", :language=>"Japanese" # => raise ArgumentError Asking in the ruby list, Hidetoshi NAGAI, teach me how to use symbols, variable parameter methods (varargs), to create this clean example. In a next post i explain ho to to improve the optinal parameter using meta-programming. Like this:

QuickAndDirty 난 예전에 프로그래머에게 필요한 피드백이라는 글에서 TDD, 리팩토링 등의 기법의 목적은 프로젝트를 더 빨리 완료하는 것이며, clean code니까 빨리 개발할 수 있다는 주장을 펼친 바 있다. 이번엔 이 주장을 한발짝 더 깊게 들어가되, 약간 다른 관점으로 풀어보려고 한다. 에릭 리스의 린스타트업에 보면 이런 스토리가 나온다. 처음에 스타트업을 할 때는 애자일의 주요 기법들을 잘 적용하면서 기술적으로 훌륭한 프로젝트를 했는데 아무도 쓰는 사람이 없어서 망했고, 나중에 다시 창업해서 수많은 버그가 있는 제품을 그냥 출시했는데 흥했더라. 매우 인상적인 이야기다. 오해를 덜기 위해 명확히 해두자면, 여기서 말하는 품질은 제품의 품질이 아니라 기술적인 품질이다. 아뭏든, 여기서 우리는 clean code를 위한 노력이 사실은 성공에는 도움이 안되는 게 아니었을까 하는 의심을 품게 된다. 나도 스타트업은 quick & dirty를 해야 한다고 생각한다. 진짜 주제로 넘어가기 전에 잠시, clean code에 도달하는 가장 훌륭한 방법인 TDD의 사이클을 복습해보자. 제대로 동작하는지 확인할 수 있는 테스트를 작성한다.실행 가능하게 만든다. 린 스타트업은 말하자면 TDD를 조금 더 큰 스케일로 하는 것이다. 가설을 수립하고, 가설을 확인할 수 있는 지표를 설정한다.가설을 검증할 수 있는 MVP를 만든다. quick & dirty! 문제는 바로 2와 4분의 3 승강장 2와 3 사이에 있다. 하지만, 설령 개발자가 2와 3 사이에 숨겨진 2.5를 인지한다고 해도 문제는 간단하지 않다. 뛰어난 엔지니어가 CEO이거나, 혹은 뛰어난 엔지니어가 어떻게 일하는지를 이해하는 CEO라면 2.5를 이해한다. 물론 위의 이야기는 어쨋든 다 행복한 스토리다. MVP는 박병호가 아니고, Minimum Viable Product다. 하지만 대부분의 스타트업들은 Minimum은 커녕 Maximum을 만들기 위해 노력한다. 그래서, 스타트업은 MVP를 만들 때 극도로 절제해야 한다.

gui2py - Simple and powerful GUI framework for agile development InformacionGeneral - GuiaInstalacion (Español) gui2py is a GUI framework for building cross-platform "visual" desktop applications on Windows, Mac OS X, and Linux, using the Python language and the wxPython toolkit. Its objetive is to evolve PythonCard with web2py's phylosophy and facilities with the following goals: KISS compact structure: easy to learn, complete and powerful GUI Framework for Rapid Application Development Visual Tools: designer, inspector and property editor, embeddables into IDEs (see rad2py screenshot) HTML/Javascript-like capabilities (i.e. events, layout): reusing and/or adapting gluon (web2py framework) + automatic flow mechanism Features Currently, gui2py supports the following components: Visual Tools For quick Point-and-Click visual design of user interfaces, gui2py includes: a designer, a toolbox, an inspection tool and a property editor: Screenshots For more screenshots, browse the screenshots folder in the repo. Compatibility Notes: Installation News

5 things you can do with a Ruby array in one line (PLUS A FREE BONUS!!) « collect{thoughts} March 23, 2007 Coming from a Java background, I’ve found arrays to be very “rigid”. And by rigid I mean they sort of suck. However, Ruby makes arrays flexible and a blast to work with. 1. puts my_array.inject(0){|sum,item| sum + item} 2.{|item| item*2 } 3. my_array.find_all{|item| item % 3 == 0 } 4. my_array.find_all{|item| item % 3 == 0 }.inject(0){|sum,item| sum + item } 5. my_array.sortmy_array.sort_by{|item| item*-1} Bonus! my_array.find_all{|item| item =~ /\d{3}-\d{3}-\d{4}/ } Stay tuned, more Ruby goodness to come! Don’t be shy, check out everything you can do with Ruby’s Array Like this: Like Loading...

Steve Souders - High Performance Web Sites