Or, “In search of the lazy programmer”.   A slide with a fancy title (and #)counts  Except this one  Ask questions at any time Rules.

Slides:



Advertisements
Similar presentations
EIONET Training Zope Page Templates Miruna Bădescu Finsiel Romania Copenhagen, 28 October 2003.
Advertisements

How to be a good Programmer
Stored procedures and views You can see definitions for stored procedures and views in the demo databases but you can’t change them. For views, expand.
Building a Title Plant Doug Bello D. Bello Associates, Inc. Pasadena, California 2004 halFILE User Group Austin, Texas.
Final Project of Information Retrieval and Extraction by d 吳蕙如.
Software Engineering and Design Principles Chapter 1.
“Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how.
EXtreme.NET Dr. Neil Roodyn. eXtreme.NET Who is Dr. Neil? MISSION: To increase the value of your Software Business Working with software for way too long.
1 Today More on random testing + symbolic constraint solving (“concolic” testing) Using summaries to explore fewer paths (SMART) While preserving level.
1Bloom Filters Lookup questions: Does item “ x ” exist in a set or multiset? Data set may be very big or expensive to access. Filter lookup questions with.
Unit 1 – Improving Productivity. 1.1Why did you use a computer? What other systems / resources could you have used? For unit 10,I had to make a power.
TEACHING PROGRAMMING BY ITERATIVE DEEPENING Dr. Mark Lee | School of Computer Science, University of Birmingham
Chapter 3.1 – RoR: An introduction Maciej Mensfeld Presented by: Maciej Mensfeld RoR: An introduction dev.mensfeld.pl github.com/mensfeld.
Unit 1 – Improving Productivity Jake Carey. 1.1Why did you use a computer? What other systems / resources could you have used? I used a computer to finish.
Unit 1 – Improving Productivity. 1.1Why did you use a computer? What other systems / resources could you have used? I could have used a pen and paper.
Level 2 IT Users Qualification – Unit 1 Improving Productivity
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
ICAPRG301A Week 4Buggy Programming ICAPRG301A Apply introductory programming techniques Program Bugs US Navy Admiral Grace Hopper is often credited with.
Alison Hayes Independent Learning Materials March 2012.
“Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how.
1.1Why did you use a computer? What other systems / resources could you have used? I used a computer because my handwriting isn’t that neat it also looks.
Mr C Johnston ICT Teacher BTEC IT Unit 06 - Lesson 01 Introduction to Computer Programming.
Win32 Programming Lesson 1: Why We’re All Here. Why We’re Here…  Okay, maybe that’s too grandiose  Windows – in particular Win32 Thirty-what?  What.
1.NET Web Forms Business Forms © 2002 by Jerry Post.
We came up with the general rule for expanding binomials, in particular squaring the sum and difference of two terms:- (a + b)²= a²+ 2ab + b² and (a –
Debugging Strategies from Software Carpentry. Agan's Rules Many people make debugging harder than it needs to be by: Using inadequate tools Not going.
CS 4730 Probability and Risk CS 4730 – Computer Game Design Credit: Several slides from Walker White (Cornell)
GLOBAL SCHOOL OF PROJECT MANAGEMENT UNIVERSITY FOR INTERNATIONAL COOPERATION Ing. Osvaldo A. Martínez Gómez, MAP, MSc. Essential Topics - Project Management.
Unit 1 – Improving Productivity Dylan Wakelam Instructions ~ 100 words per box.
1 CS Tutorial 5 Frid. Oct 23, 2009 Design Document Tutorial.
1 5. Abstract Data Structures & Algorithms 5.2 Static Data Structures.
User Experience & Interface (UXI) Proprietary & Confidential 7/13/2014 DBS UXI Strategy Aaron Case.
When I want to work with SQL, I start off as if I am doing a regular query.
Object Orientation Concepts, Terminology and a Story. © Allan C. Milne School of Engineering, Computing & Applied Mathematics University of Abertay v
Hi mom i want to ask an important question will you let me go to bobs party with sue ill take out the trash wash the dishes and clean my room i promise.
CSS Trends Presenter: Dang Minh Tuan. About Me Full name: Đặng Minh Tuấn Nick name: ohisee (oh-i-see) Job: Work as Web Developer Freelancer and APTECH.
ICIST 2011 Mar , Nanjing, China Visualization in Software Architecture Helen Wu 1 Let’s Enforce a Simple Rule in Software Architecture Helen.
Divisibility.
Chapter 10: Software Size Estimation Omar Meqdadi SE 273 Lecture 10 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Staffordshire UNIVERSITY School of Computing Version Jan 08 original by K.Ingram & J.Westlake1 Special Relationships between Use Cases Normally it is not.
Phrasalverbs. Complete the sentences Brian asked Judy ________to dinner. out.
TCSS 342 Autumn 2004 Version TCSS 342 Data Structures & Algorithms Autumn 2004 Ed Hong.
Unpacking each and every strategy! THE MATHEMATICIAN’S TOOLBOX.
SCORING – DO NOT DELETE THIS SLIDE UNTIL TOLD TO DO SO 25 pts total per SS 12 of the 25 pts is the last slide Deductions Not deleting required slides Not.
Journal 3/4/16 What is heat? What makes something hot or cold? Objective Tonight’s Homework To learn how we measure and define temperature and heat p 366:
Reactor An ORM framework for ColdFusion Presentation By: Doug Hughes
CMSC 202 Lesson 26 Miscellaneous Topics. Warmup Decide which of the following are legal statements: int a = 7; const int b = 6; int * const p1 = & a;
How To Get To The Amusement Park! By Kelly Fitzgerald How To Get to the Amusement Park! By Kelly Fitzgerald.
Earning Three Hours of GT Credit Slide 1: Title of Work Stations PowerPoint Template for Submission Work Station 1Work Station 2Work Station 3.
Syllabus Highlights CSE 1310 – Introduction to Computers and Programming Alexandra Stefan University of Texas at Arlington 1.
AP CSP: Cleaning Data & Creating Summary Tables
AP CSP: Finding a Data Story
The first element of the Traits
Fundamentals of Computer Systems
Computer Apps Honors: A trip down memory lane
C #include <stdio.h> int main() { printf ("hello class\n");
What YOU Need to Know About Risk Management
Software Testing and Maintenance Modifying Code
My week in JavaScript Hell
About This Course.
What YOU Need to Know About Risk Management
Differentiating Levels of a Learning Progression
Data Dynamic templates
The first element of the Traits
BELLWORK Please take your Catcher in the Rye quiz in silence. After you are finished, please bring it to my desk.
Why We Need Car Parking Systems - Wohr Parking Systems
Types of Stack Parking Systems Offered by Wohr Parking Systems
Taking competencies to the next level
What YOU Need to Know About Risk Management
Add Title.
Presentation transcript:

Or, “In search of the lazy programmer”

  A slide with a fancy title (and #)counts  Except this one  Ask questions at any time Rules

  Started with Progress v  Dot R created 1991  Acquired 1996  MBO 2012 #1 Dot R and Me

  New methodology  Unit tests  Separate Model from DB #2 A new way

  Wanted modern, clean code  Dynamic Code ! Yay!  Separate Model from DB #3 A new way

  Single base class  All crud handled for any table  Weekend of hard work  Several beers in celebration #4 Success!

  Need to add extra functionality (lookup etc)  Explain methodology to other devs  Use methodology in other systems  Let’s fire it up and see ! #5 Time for change

  Horrible code  Dynamic everything. Arrgggh.  Should be xxx rated  Document it. That will sort it out #6 Failure !

“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it” Brian Kernighan

  Why this way ?  Showing off how clever I was…  Keep my job ;)  However, it’s wrong wrong wrong #7 On Reflection

  Needed lots of samey code  I didn’t want to write the code (#1 lazy programmer)  So, get the computer to do it #8 Code Generation

  Consistency  Predictable: No surprises  Understandable  Faster than you are #9 Code Generation

  Maia uses templates  ActiveRecord framework  Roll your own  Easy and productive #10 Summary