Best practice. Luigi De Russis. Clean Code
|
|
- Kevin Chandler
- 6 years ago
- Views:
Transcription
1 Best practice Luigi De Russis
2 2 Measuring code quality
3 The only valid measurement: WTFs/min 3 Good code Bad code WTF WTF WTF, this is shit! CODE REVIEW WTF WTF CODE REVIEW WTF Dude, WTF WTF
4 4 Goals
5 Code MUST be 5 Readable Maintainable Extendable Testable
6 6 How?
7 7
8 8 Meaningful names
9 An example 9 public List<int[]> getthem() { List<int[]> list = new ArrayList<int[]>(); for (int[] x : thelist) if (x[0] == 4) list.add(x); return list; } What does this code do?
10 An example 10 public List<int[]> getflaggedcells() { List<int[]> flaggedcells = new ArrayList<int[]>(); for (int[] cell : gameboard) if (cell[status_value] == FLAGGED) flaggedcell.add(cell); return flaggedcells; } Better?
11 An example 11 public List<Cell> getflaggedcells() { List<Cell> flaggedcells = new ArrayList<Cell>(); for (Cell cell : gameboard) if (cell.isflagged()) flaggedcell.add(cell); return flaggedcells; } What about this?
12 What we have done 12 Used intention revealing names flaggedcells rather than list Replaced magic numbers with constants cell[status_value] rather than x[0] Created an appropriate abstract data type Cell cell rather than int[] cell
13 Another example 13 class DtaRcrd102 { private Date genymdhms; private Date modymdhms; private final String pszqint = 102 ; /*... */ } Use pronounceable and searchable names (please!)
14 Another example 14 class Customer { private Date generationtimestamp; private Date modificationtimestamp; private final String recordid = 102 ; /*... */ } Better?
15 15 Functions
16 Functions 16 Small Do One Thing
17 Do One Thing 17 public bool isedible() { if(this.expirationdate > Date.Now && this.approvedforconsumption == true && this.inspectorid!= null) { return true; else return false; } How many things is the function doing?
18 Do One Thing 18 public bool isedible() { } return isfresh() && isapproved() && isinspected(); Now the function is doing one thing! A change in the specification turns into a single change in the code.
19 Functions 19 Handle errors (and use exceptions) Don t Repeat Yourself (avoid copy-and-paste code)
20 20 Comments
21 Explain yourself in the code 21 Which one is cleaner? //check to see if the employee is eligible for full benefits if((employee.flags & HOURLY_FLAG) && (employee.age > 65)) if(employee.iseligibleforfullbenefits())
22 Explain yourself in the code 22 Which one is cleaner? //check to see if the employee is eligible for full benefits if((employee.flags & HOURLY_FLAG) && (employee.age > 65)) if(employee.iseligibleforfullbenefits())
23 API Documentation YES Explanation of intent Clarification Warning of consequences Orphan comments NO Obsolete comments Noise comments Code commented-out 23
24 24 Formatting
25 Formatting 25 Communication is the purpose of formatting Vertical openness between concepts Each blank line is a visual cue that identifies a new and separate concept
26 Breaking Indentation 26 public class CommentWidget extends TextWidget { public static final String REGEXP = ^#[\r\n]*(?:(?:\r\n) \n \r)? ; public CommentWidget(String text) { super(text); } public String render() throws Exception { return ; } } Eh?
27 Breaking Indentation 27 public class CommentWidget extends TextWidget { public static final String REGEXP = ^#[\r\n]*(?:(?:\r\n) \n \r)? ; public CommentWidget(String text) { super(text); } Better? } public String render() throws Exception { return ; }
28 28 Conventions
29 Conventions 29 Conventions enable common understanding Stick to the language-specific conventions Respect team-level conventions Still complying with the language-specific conventions
30 References 30 Robert C. Martin Series, - A Handbook of Agile Software Craftsmanship, Prentice Hall Geek and Poke, OSNews Comics,
31 License 31 This work is licensed under the Creative Commons Attribution- NonCommercial-ShareAlike Unported (CC BY-NC-SA 3,0) License. You are free: to Share - to copy, distribute and transmit the work to Remix - to adapt the work Under the following conditions: Attribution - You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). Noncommercial - You may not use this work for commercial purposes. Share Alike - If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. To view a copy of this license, visit
Clean
Clean Code @mariosangiorgio Why? Goals Readable, maintainable and extendable code Meaningful names A simple example public List getthem() { List list1 = new ArrayList(); for (int[]
More informationCLEAN CODE Why You Should Care
CLEAN CODE Why You Should Care CERN Spring Campus 2014 Gijón, Spain - 15th April 2014 Benjamin Wolff (CERN / GS-AIS) WHAT IS BAD CODE? WHAT IS BAD CODE? CONSEQUENCES OF BAD CODE CONSEQUENCES OF BAD CODE
More informationCómo programar para que te entennan? Aula ne Sofware Libre Sergio 1
Cómo programar para que te entennan? Aula ne Sofware Libre Sergio Gómez @sgomez 1 Patern Design 2 3 4 5 Clean Code 6 7 Waterfall Model 8 Waterfall Model 9 10 11 2001: Agile Manifesto 12 1991: Rapid Applicaton
More informationMotivations. Luigi De Russis. Why Ruby (on Rails)?
Motivations Luigi De Russis 2 Disclaimer YES course-specific value open mind NO general value extremism 3 4 Course requirements Goal and context 5 Goal design and implement a Social Network site 6 credits
More informationClean Object- Oriented Design
Clean Object- Oriented Design Objektumorientált szoftvertervezés Object-oriented software design Dr. Balázs Simon BME, IIT Outline Meaningful names Functions Comments Objects and data structures Error
More informationClean code. Why? What is "clean code"? Bjarne Stroustrup. Grady Booch. Dave Thomas. 1 z 5. Petr Pošík. Department of Cybernetics, FEE CTU in Prague
1 z 5 Clean code Petr Pošík Department of Cybernetics, FEE CTU in Prague EECS, BE5B33PRG: Programming Essentials, 2015 Based on: PEP 8 (https://www.python.org/dev/peps/pep-0008/). Robert C. Martin: Clean
More informationPython INTERMEDIATE. Rapid prototyping using Python libraries and integration with local and remote services
Python INTERMEDIATE Rapid prototyping using Python libraries and integration with local and remote services The Starting Point You (should) have the basic knowledge for creating Python programs from scratch
More informationCode Beauty. Prof. Fabio Kon. Department of Computer Science Institute of Mathematics and Statistics University of São Paulo
1 Code Beauty Prof. Fabio Kon Department of Computer Science Institute of Mathematics and Statistics University of São Paulo SugarLoafPLoP'2010-24/9/2010 Salvador, Brazil 2 Agenda Definition of Beauty
More informationIntroduction and first application. Luigi De Russis. Rails 101
Introduction and first application Luigi De Russis 2 About Rails Ruby on Rails 3 Framework for making dynamic web applications created in 2003 Open Source (MIT License) for the Ruby programming language
More informationRuby AN OVERVIEW. Luigi De Russis Dipartimento di Automatica e Informatica Politecnico di Torino
Ruby AN OVERVIEW Luigi De Russis Dipartimento di Automatica e Informatica Politecnico di Torino luigi.derussis@polito.it What is Ruby? Ruby is a dynamic, open source programming language with a focus on
More informationDatabases in Python. MySQL, SQLite. Accessing persistent storage (Relational databases) from Python code
Databases in Python MySQL, SQLite Accessing persistent storage (Relational databases) from Python code Goal Making some data 'persistent' When application restarts When computer restarts Manage big amounts
More informationWeb Architecture AN OVERVIEW
Web Architecture AN OVERVIEW General web architecture Historically, the client is a web browser But it can be also A mobile application A desktop application Other server applications Internet Server(s)
More informationGit AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.
Git AN INTRODUCTION Introduction to Git as a version control system: concepts, main features and practical aspects. How do you share and save data? I m working solo and I only have one computer What I
More informationPython BASICS. Introduction to Python programming, basic concepts: formatting, naming conventions, variables, etc.
Python BASICS Introduction to Python programming, basic concepts: formatting, naming conventions, variables, etc. Identikit First appeared in 1991 Designed by Guido van Rossum General purpose High level
More informationGit AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.
Git AN INTRODUCTION Introduction to Git as a version control system: concepts, main features and practical aspects. How do you share and save data? I m working solo and I only have one computer What I
More informationPrototyping a Social Network. AngularJS: Firebase integration with AngularFire
Prototyping a Social Network AngularJS: Firebase integration with AngularFire Pizza++ 2 Pizza++ Feature Set Find top pizzas to eat near me Post pizzas Rate pizzas Review (comment) pizzas Discuss about
More informationSolution: a lock (a/k/a mutex) public: virtual void unlock() =0;
1 Solution: a lock (a/k/a mutex) class BasicLock { public: virtual void lock() =0; virtual void unlock() =0; ; 2 Using a lock class Counter { public: int get_and_inc() { lock_.lock(); int old = count_;
More informationClean Comments and Formatting
Clean Comments and Formatting Christopher Simpkins chris.simpkins@gatech.edu Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 23 Clean Comments Comments are (usually) evil. Most comments
More informationCS 2340 Objects and Design
CS 2340 Objects and Design Clean Comments Christopher Simpkins chris.simpkins@gatech.edu Chris Simpkins (Georgia Tech) CS 2340 Objects and Design Clean Comments 1 / 15 Clean Comments Comments are (usually)
More informationGit AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.
Git AN INTRODUCTION Introduction to Git as a version control system: concepts, main features and practical aspects. Have you ever lost your work? 3/10/2017 Version Control with Git 2 Have you ever lost
More informationSEMANTIC WEB AN INTRODUCTION. Luigi De https://elite.polito.it
SEMANTIC WEB AN INTRODUCTION Luigi De Russis @luigidr https://elite.polito.it THE WEB IS A WEB OF DOCUMENT FOR PEOPLE, NOT FOR MACHINES 2 THE WEB IS A WEB OF DOCUMENT 3 THE SEMANTIC WEB IS A WEB OF DATA
More information3. Design by Contract
3. Design by Contract Oscar Nierstrasz Design by Contract Bertrand Meyer, Touch of Class Learning to Program Well with Objects and Contracts, Springer, 2009. 2 Roadmap > Contracts > Stacks > Design by
More informationAngularJS. Beginner's guide - part 1
AngularJS Beginner's guide - part 1 AngularJS: 2 AngularJS: Superheroic JavaScript MVW Framework 3 AngularJS: Superheroic JavaScript MVW Framework 4 AngularJS: Superheroic JavaScript MVW Framework Javascript
More informationProgramming THE SEMANTIC WEB. Build an application upon Semantic Web models. Brief overview of Apache Jena and OWL-API.
Programming THE SEMANTIC WEB Build an application upon Semantic Web models. Brief overview of Apache Jena and OWL-API. Recap: Tools Editors (http://semanticweb.org/wiki/editors) Most common editor: Protégé
More informationreturn pagedata.gethtml(); }
Functions public static String testablehtml(pagedata pagedata, boolean includesuitesetup) throws Exception { WikiPage wikipage = pagedata.getwikipage(); StringBuffer buffer = new StringBuffer(); if (pagedata.hasattribute("test"))
More informationClean Code. A Handbook of Agile Software Craftsmanship. The Object Mentors: Robert С Martin
Clean Code A Handbook of Agile Software Craftsmanship The Object Mentors: Robert С Martin Michael C. Feathers Timothy R. Ottinger Jeffrey J. Langr Brett L. Schuchert James W. Grenning Kevin Dean Wampler
More informationConsider The Source. Express Logic, Inc.
Consider The Source John A. Carbone Express Logic, Inc. Outline How do embedded developers value RTOS source code? Why is RTOS source code important? What constitutes Good Code? What makes a good RTOS
More informationCSE 142/143 Unofficial Style Guide
CSE 142/143 Unofficial Style Guide Below, things in GREEN are GOOD; things in RED are to be AVOIDED. Commenting Comment well. Follow the commenting rules for header, method, field, and inside-method comments
More informationCuteFlow-V4 Documentation
CuteFlow-V4 Documentation Release 4.0.0 Timo Haberkern Nov 15, 2017 Contents 1 Contributing 3 1.1 Contributing Code............................................ 3 1.2 Contributing Documentation.......................................
More informationAngularJS. Beginner's guide - part 2
AngularJS Beginner's guide - part 2 Summary of the previous lesson 1. To add AngularJS to an empty page: a) Download the script angular.js from https://angularjs.org/ b) Link it in the header
More informationPrecalculus An Investigation of Functions
Precalculus An Investigation of Functions David Lippman Melonie Rasmussen Edition 1.3 This book is also available to read free online at http://www.opentextbookstore.com/precalc/ If you want a printed
More informationIntroduction to Android
Introduction to Android Ambient intelligence Alberto Monge Roffarello Politecnico di Torino, 2017/2018 Some slides and figures are taken from the Mobile Application Development (MAD) course Disclaimer
More informationSD314 Outils pour le Big Data
Institut Supérieur de l Aéronautique et de l Espace SD314 Outils pour le Big Data Functional programming in Python Christophe Garion DISC ISAE Christophe Garion SD314 Outils pour le Big Data 1/ 35 License
More informationPeterson s Algorithm
Peterson s Algorithm public void lock() { flag[i] = true; victim = i; while (flag[j] && victim == i) {}; } public void unlock() { flag[i] = false; } 24/03/10 Art of Multiprocessor Programming 1 Mutual
More informationTitle: Counting While Loops
Title: Counting While Loops Erik Boling, Panitz, Bit115, Winter Quarter 2011 Assignment Definition And General Feedback By Michael Panitz at Cascadia Community College (http://www.cascadia.edu) Table of
More informationLecture 7: Mutual Exclusion 2/16/12. slides adapted from The Art of Multiprocessor Programming, Herlihy and Shavit
Principles of Concurrency and Parallelism Lecture 7: Mutual Exclusion 2/16/12 slides adapted from The Art of Multiprocessor Programming, Herlihy and Shavit Time Absolute, true and mathematical time, of
More informationParallel Programming
Parallel Programming 9. Pipeline Parallelism Christoph von Praun praun@acm.org 09-1 (1) Parallel algorithm structure design space Organization by Data (1.1) Geometric Decomposition Organization by Tasks
More informationQueueBlock, ReversalADT, LinkedList,CustomerAccount, not MaintainCustomerData
Naming Conventions Rules Classes Use nouns Use whole words-avoid acronyms and abbreviations (unless the abbreviation is much more widely used than the long form, such as URL or HTML) Begin with upper case
More informationCOURSE 11 DESIGN PATTERNS
COURSE 11 DESIGN PATTERNS PREVIOUS COURSE J2EE Design Patterns CURRENT COURSE Refactoring Way refactoring Some refactoring examples SOFTWARE EVOLUTION Problem: You need to modify existing code extend/adapt/correct/
More informationAJAX ASYNCHRONOUS JAVASCRIPT AND XML. Laura Farinetti - DAUIN
AJAX ASYNCHRONOUS JAVASCRIPT AND XML Laura Farinetti - DAUIN Rich-client asynchronous transactions In 2005, Jesse James Garrett wrote an online article titled Ajax: A New Approach to Web Applications (www.adaptivepath.com/ideas/essays/archives/000
More informationPerl Basics. Structure, Style, and Documentation
Perl Basics Structure, Style, and Documentation Copyright 2006 2009 Stewart Weiss Easy to read programs Your job as a programmer is to create programs that are: easy to read easy to understand, easy to
More informationThe Semantic Web DEFINITIONS & APPLICATIONS
The Semantic Web DEFINITIONS & APPLICATIONS Data on the Web There are more an more data on the Web Government data, health related data, general knowledge, company information, flight information, restaurants,
More informationTutorial Four Discretization Part 1
Discretization Part 1 4 th edition, Jan. 2018 This offering is not approved or endorsed by ESI Group, ESI-OpenCFD or the OpenFOAM Foundation, the producer of the OpenFOAM software and owner of the OpenFOAM
More informationSTEAM Clown & Productions Copyright 2017 STEAM Clown. Page 1
What to add next time you are updating these slides Update slides to have more animation in the bullet lists Verify that each slide has stand alone speaker notes Page 1 Python 3 Running The Python Interpreter
More informationCOSC345 Software Engineering. Documentation
COSC345 Software Engineering Documentation Documentation Self-documenting code Comments Outline Documentation And Comments McConnell Most developers like writing documentation If the standards aren t unreasonable
More informationActivity 1: Introduction
Activity 1: Introduction In this course, you will work in teams of 3 4 students to learn new concepts. This activity will introduce you to the process. We ll also take a first look at how to store data
More informationIntroduction to lab assignments with GNS3
Politecnico di Torino TSR/CNTS, PRL, PAR Introduction to lab assignments with GNS3 User guide and helpful tips Roberto Bonafiglia, Fulvio Risso October 27, 2017 Contents 1 Requirements 4 2 Access to GNS3
More informationOpenFOAM Basic Training Tutorial Nine
Tutorial Nine 3 rd edition, Feb. 25 This offering is not approved or endorsed by ESI Group, ESI-OpenCFD or the OpenFOAM Foundation, the producer of the OpenFOAM software and owner of the OpenFOAM trademark.
More informationCIT 480: Securing Computer Systems. Operating System Concepts
CIT 480: Securing Computer Systems Operating System Concepts Topics 1. What is an OS? 2. Processes 3. Memory management 4. Filesystems 5. Virtual machines A Computer Model An operating system has to deal
More informationBest Practices for Code Handoffs
HANDS OFF! Best Practices for Code Handoffs Naomi Dushay ndushay Stanford University Libraries Code4Lib 2013 Code Handoffs Aren t Like This Code Handoffs Code Handoffs Code Handoffs I m supposed to take
More informationIN112 Mathematical Logic
Institut Supérieur de l Aéronautique et de l Espace IN112 Mathematical Logic Lab session on Prolog Christophe Garion DMIA ISAE Christophe Garion IN112 IN112 Mathematical Logic 1/ 31 License CC BY-NC-SA
More informationpythonocc Parametric Application Framework (PAF) tutorial r0.4
pythonocc Parametric Application Framework (PAF) tutorial r0.4 Thomas Paviot (tpaviot@gmail.com) February 27, 2010 Abstract This guide aims at introducing in a few stages the pythonocc package intended
More informationAngularJS AN INTRODUCTION. Introduction to the AngularJS framework
AngularJS AN INTRODUCTION Introduction to the AngularJS framework AngularJS Javascript framework for writing frontend web apps DOM manipulation, input validation, server communication, URL management,
More informationRed Hat OpenStack Platform 13
Red Hat OpenStack Platform 13 NetApp Back End Guide for the Shared File System Service Deploying Multiple NetApp Back Ends for the Shared File System Service in a Red Hat OpenStack Platform Overcloud Last
More informationIntroduction. Companion slides for The Art of Multiprocessor Programming by Maurice Herlihy & Nir Shavit
Introduction Companion slides for The by Maurice Herlihy & Nir Shavit Moore s Law Transistor count still rising Clock speed flattening sharply 2 Moore s Law (in practice) 3 Nearly Extinct: the Uniprocesor
More informationThe Monte Media Handbook
The Monte Media Handbook Version 0.3 Werner Randelshofer, 2012-04-01 2012 Werner Randelshofer. This work is licensed under a Creative Commons Attribution 3.0 Unported License. 1 Contents Introduction to
More informationREST API OVERVIEW. Design and of Web APIs using the REST paradigm.
REST API OVERVIEW Design and of Web APIs using the REST paradigm. Goal How to use REST architectures to integrate (call and/or offer) remote services How to design a consistent set of REST APIs How to
More informationCSE 11 Style Guidelines
CSE 11 Style Guidelines These style guidelines are based off of Google s Java Style Guide and Oracle s Javadoc Guide. Overview: Your style will be graded on the following items: File Headers Class Headers
More informationIN112 Mathematical Logic
Institut Supérieur de l Aéronautique et de l Espace IN112 Mathematical Logic Lab session on Prolog Christophe Garion DMIA ISAE Christophe Garion IN112 IN112 Mathematical Logic 1/ 31 License CC BY-NC-SA
More informationCMSC 201 Fall 2018 Python Coding Standards
CMSC 201 Fall 2018 Python Coding Standards The purpose of these coding standards is to make programs readable and maintainable. In the real world you may need to update your own code more than 6 months
More informationRed Hat CloudForms 4.5 Integration with AWS CloudFormation and OpenStack Heat
Red Hat CloudForms 4.5 Integration with AWS CloudFormation and OpenStack Heat How to install and configure Amazon CloudFormation and OpenStack Heat in a Red Hat CloudForms environment Red Hat CloudForms
More informationCSE 142/143 Unofficial Commenting Guide Eric Arendt, Alyssa Harding, Melissa Winstanley
CSE 142/143 Unofficial Commenting Guide Eric Arendt, Alyssa Harding, Melissa Winstanley In Brief: What You Need to Know to Comment Methods in CSE 143 Audience o A random person you don t know who wants
More informationDay06 A. Young W. Lim Wed. Young W. Lim Day06 A Wed 1 / 26
Day06 A Young W. Lim 2017-09-20 Wed Young W. Lim Day06 A 2017-09-20 Wed 1 / 26 Outline 1 Based on 2 C Program Control Overview for, while, do... while break and continue Relational and Logical Operators
More informationActivity 3: Data Types
Activity 3: Data Types Java supports two main types of data: primitive types like int and double that represent a single value, and reference types like String and Scanner that represent more complex information.
More informationGAS Tutorial - 6. Expression
GAS Tutorial - 6. Expression Young W. Lim 2016-03-03 Wed Young W. Lim GAS Tutorial - 6. Expression 2016-03-03 Wed 1 / 15 Outline 1 Expressions Young W. Lim GAS Tutorial - 6. Expression 2016-03-03 Wed 2
More informationRed Hat Decision Manager 7.0 Designing a decision service using uploaded decision tables
Red Hat Decision Manager 7.0 Designing a decision service using uploaded decision tables Last Updated: 2018-10-01 Red Hat Decision Manager 7.0 Designing a decision service using uploaded decision tables
More informationJordan University of Science & Technology Department of Computer Science CS 211 Exam #1 (23/10/2010) -- Form A
Jordan University of Science & Technology Department of Computer Science CS 211 Exam #1 (23/10/2010) -- Form A Name: ID#: Section #: Day & Time: Instructor: Answer all questions as indicated. Closed book/closed
More informationObjectives. Chapter 4: Control Structures I (Selection) Objectives (cont d.) Control Structures. Control Structures (cont d.) Relational Operators
Objectives Chapter 4: Control Structures I (Selection) In this chapter, you will: Learn about control structures Examine relational and logical operators Explore how to form and evaluate logical (Boolean)
More informationUsing Gmail. Created by the Columbia Basin Alliance for Literacy. Margaret Sutherland
Created by the Columbia Basin Alliance for Literacy This project is funded by Government of Canada s New Horizons for Seniors Program and is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike
More informationDay06 A. Young W. Lim Mon. Young W. Lim Day06 A Mon 1 / 16
Day06 A Young W. Lim 2017-09-18 Mon Young W. Lim Day06 A 2017-09-18 Mon 1 / 16 Outline 1 Based on 2 Introduction C Program Control Young W. Lim Day06 A 2017-09-18 Mon 2 / 16 Based on "C How to Program",
More informationClasses, interfaces, & documentation. Review of basic building blocks
Classes, interfaces, & documentation Review of basic building blocks Objects Data structures literally, storage containers for data constitute object knowledge or state Operations an object can perform
More informationActivity 1: Introduction
Activity 1: Introduction In this course, you will work in teams of 3 4 students to learn new concepts. This activity will introduce you to the process. We ll also take a first look at how to store data
More informationR E A D C L E A N C O D E : A H A N D B O O K O F S O F T W A R E C R A F T S M A N S H I P. C H A P T E R S 2 A N D 4.
R E A D C L E A N C O D E : A H A N D B O O K O F S O F T W A R E C R A F T S M A N S H I P. C H A P T E R S 2 A N D 4. H T T P S : / / R E F A C T O R I N G. G U R U / R E F A C T O R I N G / C A T A
More informationChapter 4: Control Structures I (Selection) Objectives. Objectives (cont d.) Control Structures. Control Structures (cont d.
Chapter 4: Control Structures I (Selection) In this chapter, you will: Objectives Learn about control structures Examine relational and logical operators Explore how to form and evaluate logical (Boolean)
More informationDay05 A. Young W. Lim Sat. Young W. Lim Day05 A Sat 1 / 14
Day05 A Young W. Lim 2017-10-07 Sat Young W. Lim Day05 A 2017-10-07 Sat 1 / 14 Outline 1 Based on 2 Structured Programming (2) Conditions and Loops Conditional Statements Loop Statements Type Cast Young
More informationCoarse-grained and fine-grained locking Niklas Fors
Coarse-grained and fine-grained locking Niklas Fors 2013-12-05 Slides borrowed from: http://cs.brown.edu/courses/cs176course_information.shtml Art of Multiprocessor Programming 1 Topics discussed Coarse-grained
More informationUse C++, not C for all work in this course. The biggest difference is how one does input
Chapter 1: Preamble 1.1 Commandments A nationally-known expert has said that C++ is a coding monster that forces us to use a disciplined style in order to tame it. This leads to a fundamental rule for
More informationTutorial Fourteen Sampling
Sampling 4 th edition, Jan. 2018 This offering is not approved or endorsed by ESI Group, ESI-OpenCFD or the OpenFOAM Foundation, the producer of the OpenFOAM software and owner of the OpenFOAM trademark.
More informationHTML5 Drag &Drop API. For better interfaces. Laura Farinetti - DAUIN
HTML5 Drag &Drop API For better interfaces Laura Farinetti - DAUIN Drag & drop HTML 5 includes a Drag and Drop API that brings native drag&drop support to the browser Drag & drop requires Something to
More informationCS 520 Theory and Practice of Software Engineering Fall 2017
CS 520 Theory and Practice of Software Engineering Fall 2017 Best and worst programming practices September 12, 2017 Logistics Recap: software architecture vs. design Specification Architecture Development
More informationRed Hat OpenStack Platform 13
Red Hat OpenStack Platform 13 NetApp Back End Guide for the Shared File System Service Deploying Multiple NetApp Back Ends for the Shared File System Service in a Red Hat OpenStack Platform Overcloud Last
More informationAssignment Definition And General Feedback By Michael Panitz at Cascadia Community College (
For Loops: Will Tanna Assignment Definition And General Feedback By Michael Panitz at Cascadia Community College (http://www.cascadia.edu) Table of contents: Summary When To Use and Avoid This Example
More informationCE204 Data Structures and Algorithms Part 1
CE204 Data Structures and Algorithms Part 1 11/01/2018 CE204 Part 1 1 Recommended Reading The most useful book for much of the material in this module is Data Structures and Algorithm Analysis in Java
More informationEECS 280 C++ Coding Standards
EECS 280 C++ Coding Standards The goal of coding standards is to make code easier to understand and maintain. Refer to these guidelines as you are writing code, not just at the end, to develop good coding
More informationProgramming Paradigms for Concurrency Lecture 3 Concurrent Objects
Programming Paradigms for Concurrency Lecture 3 Concurrent Objects Based on companion slides for The Art of Multiprocessor Programming by Maurice Herlihy & Nir Shavit Modified by Thomas Wies New York University
More informationGuide for depositing Final Bachelor's Degree Project Final Master's Degree Project- Practicum in O2, the UOC's institutional repository
Guide for depositing Final Bachelor's Degree Project Final Master's Degree Project- Practicum in O2, the UOC's institutional repository Steps to follow to publish a document in the repository 1. Enter
More informationC Coding Style Guide Version 0.4
Technotes, HowTo Series C Coding Style Guide Version 0.4 by Mike Krüger, mike@icsharpcode.net Contents 1 About the C Coding Style Guide 1 2 File Organization.. 1 3 Indentation 2 4 Comments. 3 5 Declarations.
More informationRed Hat CloudForms 4.0
Red Hat CloudForms 4.0 Introduction to the Self Service Portal An overview of the CloudForms Management Engine (CFME) Self Service user interface Last Updated: 2017-12-08 Red Hat CloudForms 4.0 Introduction
More informationThe JavaScript Language
The JavaScript Language INTRODUCTION, CORE JAVASCRIPT Laura Farinetti - DAUIN What and why JavaScript? JavaScript is a lightweight, interpreted programming language with object-oriented capabilities primarily
More information7. Optimization! Prof. O. Nierstrasz! Lecture notes by Marcus Denker!
7. Optimization! Prof. O. Nierstrasz! Lecture notes by Marcus Denker! Roadmap > Introduction! > Optimizations in the Back-end! > The Optimizer! > SSA Optimizations! > Advanced Optimizations! 2 Literature!
More information10/1/2015. dt+ux Design Thinking for User Experience Design, Prototyping & Evaluation, Autumn 2015 Prof. James A. Landay Stanford University
dt+ux: DESIGN THINKING FOR USER EXPERIENCE DESIGN + PROTOTYPING + EVALUATION This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. To view a copy
More informationUser Interface Programming OOP/Java Primer. Step 3 - documentation
User Interface Programming OOP/Java Primer Step 3 - documentation Department of Information Technology Uppsala University What is the documentation? Documentation about program in the program Clearly written
More informationIntroduction to C. Sami Ilvonen Petri Nikunen. Oct 6 8, CSC IT Center for Science Ltd, Espoo. int **b1, **b2;
Sami Ilvonen Petri Nikunen Introduction to C Oct 6 8, 2015 @ CSC IT Center for Science Ltd, Espoo int **b1, **b2; /* Initialise metadata */ board_1->height = height; board_1->width = width; board_2->height
More informationSTEAM Clown Productions
CPA: Programing in C Developed As Additional Instructor Led Slides For CPA: Programing Essentials In C Cisco NetAcademy https://www.netacad.com/ Supplemental Slides Developed by topclown@steamclown.org
More information11 Coding Standards CERTIFICATION OBJECTIVES. Use Sun Java Coding Standards
11 Coding Standards CERTIFICATION OBJECTIVES Use Sun Java Coding Standards 2 Chapter 11: Coding Standards CERTIFICATION OBJECTIVE Use Sun Java Coding Standards Spacing Standards The Developer exam is challenging.
More informationGood Coding Practices Spring 2018
CS18 Integrated Introduction to Computer Science Fisler, Nelson Contents Good Coding Practices Spring 2018 1 Introduction 1 2 The Don ts 1 3 The Dos 4 4 CS 18-Specific Practices 5 5 Style 6 1 Introduction
More informationObjectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java
Introduction Objectives An overview of object-oriented concepts. Programming and programming languages An introduction to Java 1-2 Problem Solving The purpose of writing a program is to solve a problem
More informationCLIENT-SIDE PROGRAMMING
CLIENT-SIDE PROGRAMMING George Porter Apr 11, 2018 ATTRIBUTION These slides are released under an Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) Creative Commons license These slides
More informationTutorial Ten Residence Time Distribution
Residence Time Distribution 4 th edition, Jan. 2018 This offering is not approved or endorsed by ESI Group, ESI-OpenCFD or the OpenFOAM Foundation, the producer of the OpenFOAM software and owner of the
More informationCUSTOMIZING GUIDES USING ADOBE FLASH BUILDER. Note, this document will be updated for version 10.0 soon.
CUSTOMIZING GUIDES USING ADOBE FLASH BUILDER Note, this document will be updated for version 10.0 soon. Copyright 2010 Adobe Systems Incorporated and its licensors. All rights reserved. Customizing Guides
More information