Skip to main content

Rules of Fight Code squad

1. You should tell everyone about Fight Code squad

2. If you don't want to annoy people with rules, check rule #1

3. Something that is bigger than it should, call "Pile of shit"

4. Something bigger than "Pile of shit", call "Huge pile of shit"

5. Splitting Huge pile of shit on smaller piles, is not considered refactoring, it's just shitty job.

6. Don't short down variable names, abbreviations was invented by bureaucrats to confuse shit out of regular people. There should be no bureaucrats in Fight Code squad.

7. If method is taking more than 20 lines then you should feel bad, think again.

8. If class/module is taking more than 500 lines, then it's Pile of shit.

9. Readability over Functionality, if you can't read it after hangover, don't write it.

10. If (method|class|module|factory...) is used only once in a code, it shouldn't exist. 

11. If method is taking one line, then something should be wrong with whole idea of using this method. Think again.

12. If oneliner is more than 30 characters long, then switch off your 30" monitor and try to read it on 13" laptop screen. Now what? Split it in logical multi-lines, comment each of them as you try to explain to the child.

13. If you forgot to write comments before your >20 lines method, it considered automatically as Pile of shit.   

14. If your tests rely on non-generic factories, your code will be considered not covered and therefore Pile of shit.

15. Over-architecture, -design are bad, keep it to yourself. There are doctors to help with paranoia. Be prepared for a problems of future and meet them with cold mind.

Comments

Unknown said…
Dear guys,
My name is Alice, admin of site http://magentotutorial.net. My site includes many Magento tutorials for people who work and learn about this field. In current time, the number of traffics of my site is nearly 7000 per month. I’ve seen from the various tutorials you have online such as http://igorrac.blogspot.com/ that you are very knowledgeable about this area, and would be delighted if you can be guest post on my site. On the contrary, I was wondering if you could consider about giving us a post on your site. What do you think about my offer? Or if you have any condition about this, please inform me.
I look forward to hearing from you!
Thanks and Best Regards!
Alice

Popular posts from this blog

Why Magento sucks?!

p.p1 {margin: 0.0px 0.0px 13.0px 0.0px; font: 13.0px Arial; color: #1022a3} p.p2 {margin: 0.0px 0.0px 13.0px 0.0px; font: 13.0px Arial} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Arial} p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Arial; min-height: 15.0px} span.s1 {letter-spacing: 0.0px color: #000000} span.s2 {text-decoration: underline ; letter-spacing: 0.0px} span.s3 {letter-spacing: 0.0px} span.s4 {text-decoration: underline ; letter-spacing: 0.0px color: #1022a3} This post was inspired by  http://www.commercestyle.com/e-commerce/magneto-sucks I don't agree on everything that wrote there, I won't say that is so sucky and hard. It's childish way to say system is too complicated, read the f**king manual, omg is this so hard?! So from perspective technical guy that have a lot of finished high loaded projects on the back, I want to explain my "sucky" point about it.  1) The thing that bothers me for last few weeks is news about Magento acquir...

Bounds.intersect is bad, mkay?!

I was trying to check when enemy ships are getting out of screen to destroy objects (optimization). First version Vector2 screenSize = new Vector3 (Screen.width, Screen.height, Mathf.Abs (Camera.main.transform.position.z)); Bounds screenBounds = new Bounds (new Vector2(0f,0f), screenSize); Debug.Log ("Ship " + ship.renderer.bounds + " Screen " + screenBounds); if (!ship.renderer.bounds.Intersects (screenBounds)) ship.Destroy (); So apparently this operation is taking significant time to check, end up replacing with this Vector3 screenPos = Camera.main.WorldToScreenPoint( ship.transform.position ); Vector3 screenSize = Camera.main.WorldToScreenPoint( ship.renderer.bounds.size); if (screenPos.x + screenSize.x < 0) ship.Destroy ();

How to kill old Resque workers and don't loose your face

In first thought trivial problem, `god gem` is keeping your Resque workers busy and when you deploy it just ask `god` to kill them by: god remove {group_name}. This is prety common misunderstanding thinking that workers will stop running at same moment, some of them can even live forever trying to establish their life inside your production server and continiously eating memory. One of walkarounds looked like this: in resque.rake create new task namespace :resque task :restart => :environment do    pids = Resque.workers.map(&:worker_pids) || []    pids.uniq!    if pids.any?        system("sudo kill -QUIT #{pids.join(' ')}")        puts "killed: #{pids.join(' ')}"    else        puts "resque wasn't running: #{pids.join(' ')}"    end end end It worked fine till one moment when rake stopped running initilizers before task and that cause ugly(hard) to find error...