54
Saranya Siripuekpong SPECIAL TOPIC Name the world Naming convention for any programming languages 27 June 2015

Name the World

Embed Size (px)

Citation preview

Page 1: Name the World

Saranya Siripuekpong

SPECIAL TOPIC

Name the world Naming convention!

for any programming languages!

27 June 2015

Page 2: Name the World

รันยาคือใคร

27 June 2015

WHO AM I?

2 @rzranya

Page 3: Name the World

ที่ทำงานปัจจุบัน

27 June 2015

WHO AM I?

3 @rzranya

Page 4: Name the World

Saranya Siripuekpong

หัวข้อวันนี้

Name the world Naming convention!

for any programming languages!Based on PHP!

27 June 2015

Page 5: Name the World

Review

27 June 2015 5 @rzranya

Page 6: Name the World

PHP Variable name rules

27 June 2015

Review

6 @rzranya

Page 7: Name the World

PHP Variable name rules

!!

[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*!

27 June 2015

Review

source: php.net!7 @rzranya

Page 8: Name the World

PHP Variable name rules •  A variable starts with the $ sign, followed by

the name of the variable!•  A variable name must start with a letter or the

underscore character!•  A variable name cannot start with a number!•  A variable name can only contain alpha-

numeric characters and underscores (A-z, 0-9, and _ )!

•  Variable names are case-sensitive ($age and $AGE are two different variables)!

27 June 2015

Review

source: w3schools.com!8 @rzranya

Page 9: Name the World

PHP Reserved words: Keywords __halt_compiler()! abstract! and! array()! as!break! callable! case! catch! class!clone! const! continue! declare! default!die()! do! echo! else! elseif!empty()! enddeclare! endfor! endforeach! endif!endswitch! endwhile! eval()! exit()! extends!final! finally! for! foreach! function!global! goto! if! implements! include!include_once! instanceof! insteadof! interface! isset()!list()! namespace! new! or! print!private! protected! public! require! require_once!return! static! switch! throw! trait!try! unset()! use! var! while!xor! yield!

27 June 2015

Review

9 @rzranya

Page 10: Name the World

PHP Reserved words: Predefined

27 June 2015

Review

•  __CLASS__!•  __DIR__!•  __FILE__!•  __FUNCTION__!•  __LINE__!•  __METHOD__!•  __NAMESPACE__!•  __TRAIT__!source: php.net!

10 @rzranya

Page 11: Name the World

PHP Reserved words: Other •  int!•  float!•  bool!•  string!•  true!•  false!•  null!•  resource!•  object!•  mixed!•  numeric!

27 June 2015

Review

source: php.net!11 @rzranya

Page 12: Name the World

PHP Function

calculateMe() vs Calculateme()!

27 June 2015

Review

12 @rzranya

Page 13: Name the World

Naming in PHP •  Case sensitive!–  variables!–  constants!–  array keys!–  class properties!–  class constants!

•  Case insensitive!–  functions!–  class constructors!–  class methods!–  keywords and

constructs (if, else, null, foreach, echo etc.)!

27 June 2015

Review

source: the-echoplex.net!13 @rzranya

Page 14: Name the World

Naming in JAVA •  Classes!•  Methods!•  Variables!•  Constants!

27 June 2015

Review

14 @rzranya

Page 15: Name the World

Letter case styles •  UPPERCASE!•  lowercase!•  camelCase!•  PascalCase!•  train-case!•  snake_case!•  StUdLyCaPs!•  Acronyms treatment: ALL CAPS!

27 June 2015

Review

15 @rzranya

Page 16: Name the World

Reserved words in JAVA abstract continue for new switchassert default goto package synchronizedboolean do if private thisbreak double implements protected throwbyte else import public throwscase enum instanceof return transientcatch extends int short trychar final interface static voidclass finally long strictfp volatileconst float native super while

27 June 2015

Review

source: oracle.com!16 @rzranya

Page 17: Name the World

JavaScript •  $ /!•  _!•  ClassesName!•  methodName!•  GLOBAL_VARIABLE!

27 June 2015

Review

17 @rzranya

Page 18: Name the World

SQL Reserved words •  ANSI SQL 92!•  ANSI SQL 99!•  ANSI SQL 2003!•  MySQL 3.23.x!•  MySQL 4.x!•  MySQL 5.x!•  PostGreSQL 8.1!•  MS SQL Server 2000!•  MS ODBC!•  Oracle 10.2!

27 June 2015

Review

source: drupal.org!18 @rzranya

Page 19: Name the World

What we need to name? •  Variables!•  Types, Class!•  Function, Method!•  File, Directory!•  Namespace, Library!•  Server, Device!•  Project !?!

27 June 2015

Review

19 @rzranya

Page 20: Name the World

PHP Naming Conventions

27 June 2015 20 @rzranya

Page 21: Name the World

27 June 2015

PHP Naming Conventions

21 @rzranya

Page 22: Name the World

27 June 2015

PHP Naming Conventions

source: wordpress.com!22 @rzranya

Page 23: Name the World

•  Use camelCase, not underscores, for variable, function and method names, arguments;!

•  Use underscores for option names and parameter names;!

•  Use namespaces for all classes;!•  Prefix abstract classes with

Abstract. Please note some early XX classes do not follow this convention and have not been renamed for backward compatibility reasons. However all new abstract classes must follow this naming convention;!

•  Suffix interfaces with Interface;!•  Suffix traits with Trait;!•  Suffix exceptions with Exception;!•  Use alphanumeric characters and

underscores for file names;!

27 June 2015

PHP Naming Conventions

23 @rzranya

Page 24: Name the World

•  Use camelCase, not underscores, for variable, function and method names, arguments;!

•  Use underscores for option names and parameter names;!

•  Use namespaces for all classes;!•  Prefix abstract classes with

Abstract. Please note some early XX classes do not follow this convention and have not been renamed for backward compatibility reasons. However all new abstract classes must follow this naming convention;!

•  Suffix interfaces with Interface;!•  Suffix traits with Trait;!•  Suffix exceptions with Exception;!•  Use alphanumeric characters and

underscores for file names;!

27 June 2015

PHP Naming Conventions

source: symfony.com!24 @rzranya

Page 25: Name the World

•  Both database tables and columns are named in lower case.!

•  Words in a name should be separated using underscores (e.g. product_order).!

•  For table names, you may use either singular or plural names, but not both. For simplicity, we recommend using singular names.!

•  Table names may be prefixed with a common token such as tbl_. This is especially useful when the tables of an application coexist in the same database with the tables of another application. The two sets of tables can be readily separate by using different table name prefixes.!

27 June 2015

PHP Naming Conventions

25 @rzranya

Page 26: Name the World

•  Both database tables and columns are named in lower case.!

•  Words in a name should be separated using underscores (e.g. product_order).!

•  For table names, you may use either singular or plural names, but not both. For simplicity, we recommend using singular names.!

•  Table names may be prefixed with a common token such as tbl_. This is especially useful when the tables of an application coexist in the same database with the tables of another application. The two sets of tables can be readily separate by using different table name prefixes.!

27 June 2015

PHP Naming Conventions

source: yiiframework.com!26 @rzranya

Page 27: Name the World

Frameworks & CMS Conventions �������������������������������������������������������������������������������!� PHP Project � Classes � Methods � Properties � Functions � Variables �!������������������������������������������������������������������������������������!� Akelos Framework � PascalCase � camelCase � camelCase � lower_case � lower_case �!� CakePHP Framework � PascalCase � camelCase � camelCase � camelCase � camelCase �!� CodeIgniter Framework � Proper_Case � lower_case � lower_case � lower_case � lower_case �!� Concrete5 CMS � PascalCase � camelCase � camelCase � lower_case � lower_case �!� Doctrine ORM � PascalCase � camelCase � camelCase � camelCase � camelCase �!� Drupal CMS � PascalCase � camelCase � camelCase � lower_case � lower_case �!� Joomla CMS � PascalCase � camelCase � camelCase � camelCase � camelCase �!� modx CMS � PascalCase � camelCase � camelCase � camelCase � lower_case �!� Pear Framework � PascalCase � camelCase � camelCase � � �!� Prado Framework � PascalCase � camelCase � Pascal/camel � � lower_case �!� SimplePie RSS � PascalCase � lower_case � lower_case � lower_case � lower_case �!� Symfony Framework � PascalCase � camelCase � camelCase � camelCase � camelCase �!� WordPress CMS � � � � lower_case � lower_case �!� Zend Framework � PascalCase � camelCase � camelCase � camelCase � camelCase �!�������������������������������������������������������������������������������!

27 June 2015

PHP Naming Conventions

source: Jason Holland, 2012.!27 @rzranya

Page 28: Name the World

Frameworks & CMS Conventions

•  ClassName – PascalCase!•  methodName – camelCase !•  propertyName – camelCase !•  regular_function_name – snake_case!•  $variable_name – snake_case !

27 June 2015 @rzranya 28

PHP Naming Conventions

source: Jason Holland, 2012.!

Page 29: Name the World

INCORRECT:!function fileproperties() ! !// not descriptive and needs underscore separator!function fileProperties() ! !// not descriptive and uses CamelCase!function getfileproperties() ! !// Better! But still missing underscore separator!function getFileProperties() ! !// uses CamelCase!function get_the_file_properties_from_the_file() !// wordy!!CORRECT:!function get_file_properties() !// descriptive, underscore separator, and all !

! ! ! ! ! ! !// lowercase letters!!INCORRECT:!$j = 'foo'; ! !// single letter variables should only be used in for() loops!$Str! ! ! !// contains uppercase letters!$bufferedText ! !// uses CamelCasing, and could be shortened without losing semantic meaning!$groupid ! ! !// multiple words, needs underscore separator!$name_of_last_city_used // too long!!CORRECT:!for ($j = 0; $j < 10; $j++)!$str!$buffer!$group_id!$last_city!

27 June 2015

PHP Naming Conventions

source: ellislab.com!29 @rzranya

Page 30: Name the World

Global Naming Convention

27 June 2015 30 @rzranya

Page 31: Name the World

27 June 2015

Naming Conventions: Example

credit: facebook.com!31 @rzranya

Page 32: Name the World

27 June 2015

Naming Conventions: Example

32 @rzranya

Page 33: Name the World

General Naming Conventions 1.  Length!2.  Letter case or delimiter!3.  Notation!

27 June 2015

Naming Conventions

33 @rzranya

Page 34: Name the World

โปรแกรมนี้ทำอะไร? !!function calc($t, $w) {!!$p = $t * $w * 0.97;!!return $p;!

}!

27 June 2015

Naming Conventions

34 @rzranya

Page 35: Name the World

โปรแกรมนี้ทำอะไร? !!define(‘WH_TAX_RATE’, 0.03);!!function calculate_payout($hour, $rate) {!!return $hour * $rate * (1 – WH_TAX_RATE);!

}!

27 June 2015

Naming Conventions

35 @rzranya

Page 36: Name the World

โปรแกรมนี้ทำอะไร?

27 June 2015

Naming Conventions

36 @rzranya

Page 37: Name the World

โปรแกรมนี้ทำอะไร?

27 June 2015

Naming Conventions

37 @rzranya

Page 38: Name the World

Naming Strategy

27 June 2015 38 @rzranya

Page 39: Name the World

Naming Strategy DO!•  Variables !what it contains (noun)!•  Class ! !how you call it in general (noun)!•  Constant !type of usage&value (nominal phrase)!

•  Function !what it does (verb)!

27 June 2015

Naming Strategy

39 @rzranya

Page 40: Name the World

Naming Strategy DO!•  File ! !what it applies to the program (noun)!•  Folder !type of files it contains || part name (noun)!•  Table! !Object or action it records ! ! ! !(noun / verb / noun & verb)!

•  Field ! !what it contains (noun)!

•  FK! ! !what it refers to (and may be how)!

27 June 2015

Naming Strategy

40 @rzranya

Page 41: Name the World

Naming Strategy

DO!Short and meaningful!

!Avoid programming keywords!

!English!

27 June 2015

Naming Strategy

41 @rzranya

Page 42: Name the World

Naming Strategy

Don’t!Too long!

!1 character name!

!Karaoke!

27 June 2015

Naming Strategy

42 @rzranya

Page 43: Name the World

Naming Strategy

1.  Examine it as object!2.  Write full description!

i.  What is is?!ii.  What it does?!

3.  Find n. , v. or extract to phrase!4.  Check its distinctness!

27 June 2015

Naming Strategy

43 @rzranya

Page 44: Name the World

Example

27 June 2015 44 @rzranya

Page 45: Name the World

27 June 2015

Example

45 @rzranya

2"

1"

Ranya Siripuekpong
remove item from shopping cartremove cart’s itemremoveCartItem
Ranya Siripuekpong
rating this productrate productAddProductRating
Page 46: Name the World

27 June 2015

Example

46 @rzranya

3"

4"

Page 47: Name the World

27 June 2015

Example

47 @rzranya

3"

4"

review"review_comment"reviewScore"rv_msg"ra5ngreview"

Page 48: Name the World

27 June 2015

Example

48 @rzranya

Page 49: Name the World

27 June 2015

Example

49 @rzranya

Page 50: Name the World

27 June 2015

Example

50 @rzranya

Page 51: Name the World

จัดห้องสำหรับงาน Code Mania

27 June 2015

Example

51 @rzranya

Page 52: Name the World

ถามได้นะ

27 June 2015 52 @rzranya

Page 53: Name the World

please make them … Short and meaningful ! !NOT ! !Too long!!Noun, Verb, or Phrase ! !NOT ! !1 character name!! ! ! ! ! ! ! ! ! ! !(except temporary or !! ! ! ! ! ! ! ! ! ! !throwaway)!

!English ! ! ! ! ! !NOT ! !Karaoke!!Distinctive ! ! ! ! !NOT ! !Ambiguous!

27 June 2015

When you name the world,

53 @rzranya

Page 54: Name the World

จบแล้ว

27 June 2015 54 @rzranya