FileMakerのスクリプトワークスペースのフォルダ名や構成についてのメモ

こんにちは。
株式会社フルーデンスの小巻旭洋です。

“2016年をふりかえって” という記事も下書きにあるのですが、今日はスクリプトワークスペースのフォルダ名や構成について書いてみます。

私は、スクリプト名、スクリプトワークスペースのフォルダ名や構成、レイアウト名やレイアウトのフォルダ構成など、かなり気になる性格です。

世界のみなさんは、いったいどのような構成にしているのか気になったので調べてみました。

世界的に有名な方が公開されているファイルのスクリプトワークスペースを調べました。

SeedCode(SQL Explorer)

SQL Explorer

script-workspace-sqlexplorer

SeedCode SQL Explorer
	Housekeeping
	Web Viewer Management
	General
	Queries
		SQL Wizard
			Naming
			Tables
			TablesRelationships
			Fields
			Criteria
			Sorting
			Review

SeedCode(DayBack Calendar)

Reporting with DayBack Calendar

script-workspace-daybackfinds

SeedCode Calendar
	Housekeeping
	Calendar
		-
		Settings & Sources
		Custom Action Examples
		-
		Navigation
		Resources
		Populate Calendar
		Filters
		Edit Event
		To-Do List
		Repeating Events
		Email Notifications
	Calendar Utility
	Webviewer
		-
		Configure Webviewer
		API In - Scripts executed from inside the WebViewer
		API Out - Scripts that talk to the WebViewer
		Update And Restore
		Utilities

Todd Geist(Selector Connector)

FileMaker Selector Connector Video

script-workspace-selectorconnector

File Module
	File Public
		File Triggers
Application Modules
	Ultility Modules
		BackNForth
			backnforth Public
		Session
			Session PUBLIC
			Session Private
		Navigation
			navigation Public
			navigation Private
	Domain Modules
		Home
			Public
		Items
			Items Public
				Buttons
				Triggers
		Customers
			Public
			Private
		Orders
			Public
				Buttons
				API
				Triggers
			Private
gi Modules
	gi Virtual Lists
		Virtual Lists Public
	gi Error Handler
	gi Selector Connector
		Selector Connector Public
		Selector Connector Private
	gi MasterDetail2.0
		MasterDetail Configuration And Settings
		MasterDetail Public
			API
			Triggers
		MasterDetail Private
Modules
	HyperList
		HyperList Public
	#Parameters
		#Parameters: Configuration
		#Parameters: Public

Richard Carlton Consulting(FM Starting Point)

http://fmstartingpoint.com/

script-workspace-fmstartingpoint

no	value
Preferences (1-49)
Dashboard (50-99)
Script Triggers - Data Entry On Load (100-150)
	Data Entry On Load
	Popup Screen On Load
Navigation (Across Top and Home Screen) (200-250)
Relating Records (Popup List View Search Processes) (300-319)
Go To Related Record (GTRR) (320-400)
ACCOUNTS (400-459)
	ACC_Processes
	ACC_Secondary_Tab_Processes
	ACC_Reporting
	ACC_Sort_Columns
ASSETS (500-529)
	AST_Processes
	AST_Secondary_Tab_Processes
	AST_Reporting
	AST_Sort_Columns
	AST_Popovers
	Triggers
Audit Trail (580-599)
CONTACTS (600-849)
	CON_Processes
	CON_Secondary_Tab_Processes
	Followup System
	CON_Email Menu
	CON_Navigation
	CON_Reporting
	CON_Sort_Columns
	GPS Directions Scripts
	Time Zone Services
CALENDAR (850-899)
ESTIMATES (900-999)
	EST_Processes
	EST_Reporting
	EST_Sort_Columns
	EST_Charts
	EST_Bar_Code_add_Line_items
EXPENSES (1000-1099)
	EXS_Processes
	EXS_Sort_Columns
	EXS_Reporting
	EXS_Charts
INVOICES (1100-1199)
	INV_processes
	INV_Reporting
	INV_Sort_Order
	INV_Charts
	INV_Bar_Code_add_Line_items
PROJECTS (1200-1299)
	PRJ_Processes
	PRJ_Secondary_Tab_Processes
	PRJ_Navigation
	PRJ_Reporting
	PRJ_Sort_Records
PRODUCTS (1300-1399)
	PRO_Processes
	PRO_Reporting
	PRO_Sort_Columns
DOCUMENTS (1400-1499)
	DOC_Processes
	DOC_Sort_Columns
INFO (1500-1599)
NOTES LOG (1600-1699)
	CMN_Processes
	CMN_Navigation
	CMN_Reporting
	CMN_Sort_Columns
STAFF (1700-1799)
	STA_Processes
	STA_Reporting
	STA_Sort_Columns
TIMESHEETS (1800-1899)
	TIM_Processes
	TIM_Reporting
	TIM_Sort_Columns
TO_DO_LIST (1900-1999)
	TDL_Reporting
	TDL_Processes
	TDL_Navigation
Developer (2200-2299)
Containers (2300-2399)
Touch Device Layouts (2400-2499)
Barcode Creator

Matt Petrowsky(DevCon 2016 Session Materials)

https://community.filemaker.com/docs/DOC-7370

script-workspace-des001

Navigation Menu
Preserving state
Toggle Layout Parts
Offscreen Tabs
Orientation Change
Infinite Sliders

frudens

script-workspace-frudensmaijn

Document
Chane Log
Developer
	Initial
	Release
Modules
Application
	Startup
	Shutdown
	Global
	Menu
	Shared
	Server
	Mobile
	Error Handling
User Interface
	System
		Entity 1
	Resource
		Customer
		User
	Event
		Entity 3
	Summary
		Entity 4
	Other
		Entity 5

さいごに

とくに正解はないと思うので、どんな名前でもフォルダ構成でもよいと思います。
私は、普段なにげなくやっている開発作業の中で、テーブル名、フィールド名、レイアウト名、スクリプト名、変数名、などに対して、常に「なんで?」と考えながら開発をしていますし、他の人のファイルを見ています。
おそらく一般的な開発者であれば、考えていない人はいないと思います。
常に自分の開発プロセスを振り返り、生産性や品質を高める努力をしていきたいですね。

正解はないにしても、未来の自分のためにも他の人のためにも “分かりやすさ” は考えるべきかと思います。

小さなことでも構いませんので、お困りのことがありましたら、お電話やお問い合わせフォームからご連絡頂ければと思います。

最後まで見て頂き、ありがとうございました。