SlideShare a Scribd company logo
1 of 25
Download to read offline
FM Coding Standards
&
Management Best Practices
Presenter: Manjit Behera, Mindfire Solutions
Date: 18/06/2014
Presenter: Manjit Behera, Mindfire Solutions
FM0-305/307 - FileMaker 11 and 12 certified developer
About Me
Skills: FileMaker 9-13, Oracle 10g, HTML 3, CSS,
Javascript, PHP.
Connect Me:
Facebook: https://www.facebook.com/manjitbehera
LinkedIn: http://www.linkedin.com/pub/manjit-kumar/22/1b4/310
Twitter: https://twitter.com/mastermind____
Google+: https://www.google.com/+mastermindmanjit
Contact Me:
Email: manjitb@mindfiresolutions.com / beheramanjit@gmail.com
Skype: mfsi_manjitb
Presenter: Manjit Behera, Mindfire Solutions
AgendaAgenda
Filemaker Coding Standard
Mindfire Coding Standard
Application/Customize Coding Standard
Project Management
Backup and Updates
What is Coding Standard ?What is Coding Standard ?
Coding standards/conventions are a set of guidelines for a
specific programming language that recommend programming
style, practices and methods for each aspect of a piece
program written in this language.
These conventions usually cover file organization, indentation,
comments, declarations, statements, white space, naming
conventions, programming practices, programming principles,
programming rules of thumb, architectural best practices, etc.
Presenter: Manjit Behera, Mindfire Solutions
Filemaker Coding StandardFilemaker Coding Standard
Camel Case ( e.g. contactFirstName )
Pascal Case ( e.g. ContactFirstName )
Underscore format ( e.g. contact_first_name )
Generally there are 3 types of naming conventions in Filemaker.
Presenter: Manjit Behera, Mindfire Solutions
Filemaker Coding StandardFilemaker Coding Standard
Database Definitions (e.g. Tables, Fields, TOGs )
Layouts ( e.g. ContactFirstName )
Scripts ( e.g. Title, Comments, Variables )
Generally there are 3 areas to implement Naming Conventions in
Filemaker.
Presenter: Manjit Behera, Mindfire Solutions
Naming Conversions : TablesNaming Conversions : Tables
Naming of tables are straight forward and must follow Camel Case
conversion. A table name should not be include space or any special
characters (e.g. #,$,=,@,%, etc).
Presenter: Manjit Behera, Mindfire Solutions
Naming Conversions : FieldsNaming Conversions : Fields
Naming of Fields are straight forward and must follow either Camel Case
or Pascal Case conversion. A Field name shouldn't have any special
characters (e.g. #,$,=,@,%, etc). It is advisable not to include space to
the fields that are used in calculations.
Presenter: Manjit Behera, Mindfire Solutions
Below are the abbreviations used for different Field Types:
n = Number
t = Text
d = Date
i = Time
m = TimeStamp
R = Container
s = Summary
p = Repetition
It is a good practice to use these abbreviations in the Field Names to denote
their data type.
e.g FirstName_xt, Salary_xn, DateOfBirth_xd
Naming Conversions : FieldsNaming Conversions : Fields
In the database the table definition i.e the fields should be by default
sorted by field name. Below are few standards to be followed while
naming the fields:
Presenter: Manjit Behera, Mindfire Solutions
Key field naming:
- All the key fields should be prefixed with the letter “k”.
- Use triple underscores before a primary key field name. e.g ___kp<Field
Type>_<Field Name>
- Use double underscores before a foriegn key field name. e.g __kf<Field
Type>_<Field Name>
- Use single underscores before a alternate key field name. e.g _ka<Field
Type>_<Field Name>
Examples: ___kpn_ContactId, __kft_CompanyId, _kat_CompanyName
Global fields naming:
- Global fields name should start with the character “g”. e.g g<Field
Type>_<Field Name>
Examples: gn_CurrentContactId, gt_SelectedCompany, gr_NewButton,
gm_CurrentTimeStamp
Naming Conversions : FieldsNaming Conversions : Fields
Presenter: Manjit Behera, Mindfire Solutions
Utility/Development fields naming:
- Utility field names should be prefixed with “z” and Developer Utility field
should be suffixed as “zz”. e.g z_<Field Name>, zz_<Field Name>
Examples: z_Constant1, zz_ActiveStatus
Calculation fields naming:
- Calculation field name should suffix or prefix the phrase “c<Calculation
Return Type>” to the field name. e.g ct_<Field Name> or <Field Name>_ct
Examples: FullName_ct, LinePrice_cn, AddNewRecordButton_cr,
cr_DeleteRecordButton
Summary fields naming:
- Summary fields should prefixed with the character “s_” e.g s_<Field Name>
Examples: s_TotalPrice, s_NumbersOfContacts
Naming Conversions : TOGsNaming Conversions : TOGs
Presenter: Manjit Behera, Mindfire Solutions
Anchor Buoy's convention should be followed to name the Table
Occurrences in the Relationship Graph. Mostly 3 alphabet used for
abbreviation of the Table TOGs.
Naming Conversions : LayoutsNaming Conversions : Layouts
Presenter: Manjit Behera, Mindfire Solutions
Layouts should be named as e.g. <Description of the layout>_<Table
Occurrence Name>
Examples: Company Details_CMT, Company List_CMT
In case to differentiate between Utility and User Interaction layouts layout
name can prefixed with some text like UI for User Interacting layout e.g.
UI_<Description of the layout>[<Table Occurrence Name> ]
If there are grouping/section maintain in a large project use the section
name before the Layout Descriptions. e.g. UI_<Module/Section Name>_
<Description of the layout>[<Table Occurrence Name>]
Examples: UI_CompanyDetails[CMT], UI_Admin_RoleDetails[ROL]
Naming Conversions : Custom FunctionsNaming Conversions : Custom Functions
Presenter: Manjit Behera, Mindfire Solutions
- Public Custom Functions e.g
CustomFunctionName_CFpub(parameterOne, parameterTwo )
- Private Custom Functions e.g CustomFunctionName_CFpvt(parameterOne,
parameterTwo )
- Custom Function Parameters - camelCase
- Function Headers
1.Author Name
2.Created On
3.Function Name
4.Description
5.Function Parameters
6.Return Type
Examples: RoundUp_CFNpub (number ; decimals)
Naming Conversions : Custom FunctionsNaming Conversions : Custom Functions
Presenter: Manjit Behera, Mindfire Solutions
Naming Conversions :Naming Conversions : ScriptsScripts
Presenter: Manjit Behera, Mindfire Solutions
Script Grouping: Scripts should be grouped in folders and sub folders based on
the modules they are used in.
Script Naming: <Anchor TO Name / Type of script>_ScriptName. <Type of
script> can be [UTL], [BTN], [TRG], etc. based on the purpose or type of script. If
the script is attached to any button then prefix [BTN]_ before the script name.
Similarly for utility scripts prefix [UTL], for scripts used at triggers name it as
[TRG]_, [SUB]_ for sub scripts etc.
Script Header:
1.Script Name
2.Created On
3.Purpose
4.Declared Variables
5.Referenced Variables (Global Variables)
6.Parameters (i.e List any parameters required for the script
7.Subscripts Used
8.Calling Scripts
Variables Naming: (Local and Global): camelCase
Inline Comments: Purpose of a section (i.e multiple script steps)
Examples: [BTN]_New Company, [UTL]_Sort Records, [SUB]_Import Related Contacts
Naming Conversions :Naming Conversions : ScriptsScripts
Presenter: Manjit Behera, Mindfire Solutions
Naming Conversions :Naming Conversions : Value ListValue List
Presenter: Manjit Behera, Mindfire Solutions
To name value list use suffixes with the name of the list. The Suffixes are as
follows:
c = Custom Value
x = Value list from another file
d = Value list from field, including all values (for Dynamic)
r = Value list from field, including related values (for Related)
Examples: Status List_c, Company Id and Name List_d, Company Contact Persons_r
Mindfire Coding StandardMindfire Coding Standard
Like other standard organizations Mindfire is also having a language
specific naming conventions by following the Standard Coding of
Filemaker.
Presenter: Manjit Behera, Mindfire Solutions
Application/Customize Coding StandardApplication/Customize Coding Standard
This is the naming conversions that follows for a particular project/company
which might not be a standard coding of respective language.
Presenter: Manjit Behera, Mindfire Solutions
Benefits of Coding StandardBenefits of Coding Standard
Software maintenance
Software engineering
Driving down complexity
Quality
Re-factoring
Presenter: Manjit Behera, Mindfire Solutions
Project ManagementProject Management
Folder Structure
Coding Standard
Code Management
Consistency
Performance
Security
Presenter: Manjit Behera, Mindfire Solutions
Backup and UpdatesBackup and Updates
Periodical Backup
Record Updates
Cloud Storage
SVN Usages
Presenter: Manjit Behera, Mindfire Solutions
Presenter: Manjit Behera, Mindfire Solutions
Question and Answer
Thank you
Presenter: Manjit Behera, Mindfire Solutions
www.mindfiresolutions.com
https://www.facebook.com/MindfireSolutions
http://www.linkedin.com/company/mindfire-solutions
http://twitter.com/mindfires

More Related Content

Viewers also liked

FileMaker Pro 10 - User's Guide
FileMaker Pro 10 - User's GuideFileMaker Pro 10 - User's Guide
FileMaker Pro 10 - User's GuideFrescatiStory
 
Corporate income tax.feb.2011
Corporate income tax.feb.2011Corporate income tax.feb.2011
Corporate income tax.feb.2011Phil Taxation
 
Value Added Tax (Taxable Sales) Philippines
Value Added Tax (Taxable Sales) PhilippinesValue Added Tax (Taxable Sales) Philippines
Value Added Tax (Taxable Sales) PhilippinesKarla J. Medina
 
Accounting for non accounting professionals
Accounting for non accounting professionalsAccounting for non accounting professionals
Accounting for non accounting professionalsMunir Ahmad
 
Powerpoint tax71 VALUE-ADDED TAX
Powerpoint tax71 VALUE-ADDED TAXPowerpoint tax71 VALUE-ADDED TAX
Powerpoint tax71 VALUE-ADDED TAXvery maldita
 
Tutorial 8: Developing an Excel Application
Tutorial 8: Developing an Excel ApplicationTutorial 8: Developing an Excel Application
Tutorial 8: Developing an Excel Applicationcios135
 
Computation of income tax
Computation of income taxComputation of income tax
Computation of income taxMarvin Morales
 
Income tax-ppt
Income tax-pptIncome tax-ppt
Income tax-pptlkiju
 
International Taxation - To begin with
International Taxation - To begin withInternational Taxation - To begin with
International Taxation - To begin withsreenivasanfca
 
Taxation 101 basic rules and principles in philippine taxation by jr lopez go...
Taxation 101 basic rules and principles in philippine taxation by jr lopez go...Taxation 101 basic rules and principles in philippine taxation by jr lopez go...
Taxation 101 basic rules and principles in philippine taxation by jr lopez go...JR Lopez Gonzales
 

Viewers also liked (18)

Principles of phil taxation
Principles of phil taxationPrinciples of phil taxation
Principles of phil taxation
 
FileMaker Pro 10 - User's Guide
FileMaker Pro 10 - User's GuideFileMaker Pro 10 - User's Guide
FileMaker Pro 10 - User's Guide
 
Taxation in the philippines
Taxation in the philippinesTaxation in the philippines
Taxation in the philippines
 
Corporate income tax.feb.2011
Corporate income tax.feb.2011Corporate income tax.feb.2011
Corporate income tax.feb.2011
 
Value Added Tax (Taxable Sales) Philippines
Value Added Tax (Taxable Sales) PhilippinesValue Added Tax (Taxable Sales) Philippines
Value Added Tax (Taxable Sales) Philippines
 
Accounting for non accounting professionals
Accounting for non accounting professionalsAccounting for non accounting professionals
Accounting for non accounting professionals
 
Powerpoint tax71 VALUE-ADDED TAX
Powerpoint tax71 VALUE-ADDED TAXPowerpoint tax71 VALUE-ADDED TAX
Powerpoint tax71 VALUE-ADDED TAX
 
Tax law in the Philippines
Tax law in the PhilippinesTax law in the Philippines
Tax law in the Philippines
 
Tutorial 8: Developing an Excel Application
Tutorial 8: Developing an Excel ApplicationTutorial 8: Developing an Excel Application
Tutorial 8: Developing an Excel Application
 
Corporate tax
Corporate taxCorporate tax
Corporate tax
 
Principles of income taxation
Principles of income taxationPrinciples of income taxation
Principles of income taxation
 
Taxation
TaxationTaxation
Taxation
 
Computation of income tax
Computation of income taxComputation of income tax
Computation of income tax
 
Income tax-ppt
Income tax-pptIncome tax-ppt
Income tax-ppt
 
International Taxation - To begin with
International Taxation - To begin withInternational Taxation - To begin with
International Taxation - To begin with
 
General principles of taxation
General principles of taxationGeneral principles of taxation
General principles of taxation
 
Concepts of Taxation
Concepts of TaxationConcepts of Taxation
Concepts of Taxation
 
Taxation 101 basic rules and principles in philippine taxation by jr lopez go...
Taxation 101 basic rules and principles in philippine taxation by jr lopez go...Taxation 101 basic rules and principles in philippine taxation by jr lopez go...
Taxation 101 basic rules and principles in philippine taxation by jr lopez go...
 

More from Mindfire Solutions (20)

Physician Search and Review
Physician Search and ReviewPhysician Search and Review
Physician Search and Review
 
diet management app
diet management appdiet management app
diet management app
 
Business Technology Solution
Business Technology SolutionBusiness Technology Solution
Business Technology Solution
 
Remote Health Monitoring
Remote Health MonitoringRemote Health Monitoring
Remote Health Monitoring
 
Influencer Marketing Solution
Influencer Marketing SolutionInfluencer Marketing Solution
Influencer Marketing Solution
 
ELMAH
ELMAHELMAH
ELMAH
 
High Availability of Azure Applications
High Availability of Azure ApplicationsHigh Availability of Azure Applications
High Availability of Azure Applications
 
IOT Hands On
IOT Hands OnIOT Hands On
IOT Hands On
 
Glimpse of Loops Vs Set
Glimpse of Loops Vs SetGlimpse of Loops Vs Set
Glimpse of Loops Vs Set
 
Oracle Sql Developer-Getting Started
Oracle Sql Developer-Getting StartedOracle Sql Developer-Getting Started
Oracle Sql Developer-Getting Started
 
Adaptive Layout In iOS 8
Adaptive Layout In iOS 8Adaptive Layout In iOS 8
Adaptive Layout In iOS 8
 
Introduction to Auto-layout : iOS/Mac
Introduction to Auto-layout : iOS/MacIntroduction to Auto-layout : iOS/Mac
Introduction to Auto-layout : iOS/Mac
 
LINQPad - utility Tool
LINQPad - utility ToolLINQPad - utility Tool
LINQPad - utility Tool
 
Get started with watch kit development
Get started with watch kit developmentGet started with watch kit development
Get started with watch kit development
 
Swift vs Objective-C
Swift vs Objective-CSwift vs Objective-C
Swift vs Objective-C
 
Material Design in Android
Material Design in AndroidMaterial Design in Android
Material Design in Android
 
Introduction to OData
Introduction to ODataIntroduction to OData
Introduction to OData
 
Ext js Part 2- MVC
Ext js Part 2- MVCExt js Part 2- MVC
Ext js Part 2- MVC
 
ExtJs Basic Part-1
ExtJs Basic Part-1ExtJs Basic Part-1
ExtJs Basic Part-1
 
Spring Security Introduction
Spring Security IntroductionSpring Security Introduction
Spring Security Introduction
 

Recently uploaded

Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 

Recently uploaded (20)

Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 

FIleMaker Coding Standards & Management Best Practices

  • 1. FM Coding Standards & Management Best Practices Presenter: Manjit Behera, Mindfire Solutions Date: 18/06/2014
  • 2. Presenter: Manjit Behera, Mindfire Solutions FM0-305/307 - FileMaker 11 and 12 certified developer About Me Skills: FileMaker 9-13, Oracle 10g, HTML 3, CSS, Javascript, PHP. Connect Me: Facebook: https://www.facebook.com/manjitbehera LinkedIn: http://www.linkedin.com/pub/manjit-kumar/22/1b4/310 Twitter: https://twitter.com/mastermind____ Google+: https://www.google.com/+mastermindmanjit Contact Me: Email: manjitb@mindfiresolutions.com / beheramanjit@gmail.com Skype: mfsi_manjitb
  • 3. Presenter: Manjit Behera, Mindfire Solutions AgendaAgenda Filemaker Coding Standard Mindfire Coding Standard Application/Customize Coding Standard Project Management Backup and Updates
  • 4. What is Coding Standard ?What is Coding Standard ? Coding standards/conventions are a set of guidelines for a specific programming language that recommend programming style, practices and methods for each aspect of a piece program written in this language. These conventions usually cover file organization, indentation, comments, declarations, statements, white space, naming conventions, programming practices, programming principles, programming rules of thumb, architectural best practices, etc. Presenter: Manjit Behera, Mindfire Solutions
  • 5. Filemaker Coding StandardFilemaker Coding Standard Camel Case ( e.g. contactFirstName ) Pascal Case ( e.g. ContactFirstName ) Underscore format ( e.g. contact_first_name ) Generally there are 3 types of naming conventions in Filemaker. Presenter: Manjit Behera, Mindfire Solutions
  • 6. Filemaker Coding StandardFilemaker Coding Standard Database Definitions (e.g. Tables, Fields, TOGs ) Layouts ( e.g. ContactFirstName ) Scripts ( e.g. Title, Comments, Variables ) Generally there are 3 areas to implement Naming Conventions in Filemaker. Presenter: Manjit Behera, Mindfire Solutions
  • 7. Naming Conversions : TablesNaming Conversions : Tables Naming of tables are straight forward and must follow Camel Case conversion. A table name should not be include space or any special characters (e.g. #,$,=,@,%, etc). Presenter: Manjit Behera, Mindfire Solutions
  • 8. Naming Conversions : FieldsNaming Conversions : Fields Naming of Fields are straight forward and must follow either Camel Case or Pascal Case conversion. A Field name shouldn't have any special characters (e.g. #,$,=,@,%, etc). It is advisable not to include space to the fields that are used in calculations. Presenter: Manjit Behera, Mindfire Solutions Below are the abbreviations used for different Field Types: n = Number t = Text d = Date i = Time m = TimeStamp R = Container s = Summary p = Repetition It is a good practice to use these abbreviations in the Field Names to denote their data type. e.g FirstName_xt, Salary_xn, DateOfBirth_xd
  • 9. Naming Conversions : FieldsNaming Conversions : Fields In the database the table definition i.e the fields should be by default sorted by field name. Below are few standards to be followed while naming the fields: Presenter: Manjit Behera, Mindfire Solutions Key field naming: - All the key fields should be prefixed with the letter “k”. - Use triple underscores before a primary key field name. e.g ___kp<Field Type>_<Field Name> - Use double underscores before a foriegn key field name. e.g __kf<Field Type>_<Field Name> - Use single underscores before a alternate key field name. e.g _ka<Field Type>_<Field Name> Examples: ___kpn_ContactId, __kft_CompanyId, _kat_CompanyName Global fields naming: - Global fields name should start with the character “g”. e.g g<Field Type>_<Field Name> Examples: gn_CurrentContactId, gt_SelectedCompany, gr_NewButton, gm_CurrentTimeStamp
  • 10. Naming Conversions : FieldsNaming Conversions : Fields Presenter: Manjit Behera, Mindfire Solutions Utility/Development fields naming: - Utility field names should be prefixed with “z” and Developer Utility field should be suffixed as “zz”. e.g z_<Field Name>, zz_<Field Name> Examples: z_Constant1, zz_ActiveStatus Calculation fields naming: - Calculation field name should suffix or prefix the phrase “c<Calculation Return Type>” to the field name. e.g ct_<Field Name> or <Field Name>_ct Examples: FullName_ct, LinePrice_cn, AddNewRecordButton_cr, cr_DeleteRecordButton Summary fields naming: - Summary fields should prefixed with the character “s_” e.g s_<Field Name> Examples: s_TotalPrice, s_NumbersOfContacts
  • 11. Naming Conversions : TOGsNaming Conversions : TOGs Presenter: Manjit Behera, Mindfire Solutions Anchor Buoy's convention should be followed to name the Table Occurrences in the Relationship Graph. Mostly 3 alphabet used for abbreviation of the Table TOGs.
  • 12. Naming Conversions : LayoutsNaming Conversions : Layouts Presenter: Manjit Behera, Mindfire Solutions Layouts should be named as e.g. <Description of the layout>_<Table Occurrence Name> Examples: Company Details_CMT, Company List_CMT In case to differentiate between Utility and User Interaction layouts layout name can prefixed with some text like UI for User Interacting layout e.g. UI_<Description of the layout>[<Table Occurrence Name> ] If there are grouping/section maintain in a large project use the section name before the Layout Descriptions. e.g. UI_<Module/Section Name>_ <Description of the layout>[<Table Occurrence Name>] Examples: UI_CompanyDetails[CMT], UI_Admin_RoleDetails[ROL]
  • 13. Naming Conversions : Custom FunctionsNaming Conversions : Custom Functions Presenter: Manjit Behera, Mindfire Solutions - Public Custom Functions e.g CustomFunctionName_CFpub(parameterOne, parameterTwo ) - Private Custom Functions e.g CustomFunctionName_CFpvt(parameterOne, parameterTwo ) - Custom Function Parameters - camelCase - Function Headers 1.Author Name 2.Created On 3.Function Name 4.Description 5.Function Parameters 6.Return Type Examples: RoundUp_CFNpub (number ; decimals)
  • 14. Naming Conversions : Custom FunctionsNaming Conversions : Custom Functions Presenter: Manjit Behera, Mindfire Solutions
  • 15. Naming Conversions :Naming Conversions : ScriptsScripts Presenter: Manjit Behera, Mindfire Solutions Script Grouping: Scripts should be grouped in folders and sub folders based on the modules they are used in. Script Naming: <Anchor TO Name / Type of script>_ScriptName. <Type of script> can be [UTL], [BTN], [TRG], etc. based on the purpose or type of script. If the script is attached to any button then prefix [BTN]_ before the script name. Similarly for utility scripts prefix [UTL], for scripts used at triggers name it as [TRG]_, [SUB]_ for sub scripts etc. Script Header: 1.Script Name 2.Created On 3.Purpose 4.Declared Variables 5.Referenced Variables (Global Variables) 6.Parameters (i.e List any parameters required for the script 7.Subscripts Used 8.Calling Scripts Variables Naming: (Local and Global): camelCase Inline Comments: Purpose of a section (i.e multiple script steps) Examples: [BTN]_New Company, [UTL]_Sort Records, [SUB]_Import Related Contacts
  • 16. Naming Conversions :Naming Conversions : ScriptsScripts Presenter: Manjit Behera, Mindfire Solutions
  • 17. Naming Conversions :Naming Conversions : Value ListValue List Presenter: Manjit Behera, Mindfire Solutions To name value list use suffixes with the name of the list. The Suffixes are as follows: c = Custom Value x = Value list from another file d = Value list from field, including all values (for Dynamic) r = Value list from field, including related values (for Related) Examples: Status List_c, Company Id and Name List_d, Company Contact Persons_r
  • 18. Mindfire Coding StandardMindfire Coding Standard Like other standard organizations Mindfire is also having a language specific naming conventions by following the Standard Coding of Filemaker. Presenter: Manjit Behera, Mindfire Solutions
  • 19. Application/Customize Coding StandardApplication/Customize Coding Standard This is the naming conversions that follows for a particular project/company which might not be a standard coding of respective language. Presenter: Manjit Behera, Mindfire Solutions
  • 20. Benefits of Coding StandardBenefits of Coding Standard Software maintenance Software engineering Driving down complexity Quality Re-factoring Presenter: Manjit Behera, Mindfire Solutions
  • 21. Project ManagementProject Management Folder Structure Coding Standard Code Management Consistency Performance Security Presenter: Manjit Behera, Mindfire Solutions
  • 22. Backup and UpdatesBackup and Updates Periodical Backup Record Updates Cloud Storage SVN Usages Presenter: Manjit Behera, Mindfire Solutions
  • 23. Presenter: Manjit Behera, Mindfire Solutions Question and Answer
  • 24. Thank you Presenter: Manjit Behera, Mindfire Solutions