SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
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

Más contenido relacionado

Destacado

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
 

Destacado (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...
 

Más de 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
 

Último

Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 

Último (20)

Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 

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