[12屆 鐵人賽] [Day28] 來講講 Cypher 的 Coding Style 吧 === ###### tags: `iT鐵人賽` `Neo4j` ## 前情提要 除結尾倒數兩篇 (゚∀゚) 來看看能不能在今天一次性寫完w > 現在時間 10/11 aka. Day27 Coding Style 對於工程師來說相當重要 小至個人,大至整世界 你 Coding Style 寫的好,對其他人來說也看的舒適 或是引發宗教戰爭 ![](https://i.imgur.com/51atOEQ.png) 所以說 Cypher 為了避免麻煩,直接都幫你定義好了 ## Clauses > 中文怎麼翻阿w 描述? 敘述? 首先像是 `MATCH`、`CREATE` 等,這類的敘述字 雖然系統是不分大小寫,不過建議是寫成全大寫 對,你可以寫成這樣 `mAtcH` 也會過 並且建議寫在每行的開頭 ## Keywords 像是 `AND`、`IN`、`NOT` 等 跟 Clauses 一樣建議全大寫 ## Node Labels ```sql (:CallFrom) (:CallTo) (:Connect) ``` `Label` 在系統中是有區分大小寫的 建議是採用大駝峰式的寫法 ## Relationship Types ```sql [:FOLLOWS] [:ACTED_IN] [:IS_IN_LOVE_WITH] ``` `Type` 在系統中也是有區分大小寫的 建議是全大寫並以 `_` 做分隔 > 我好像都寫成大駝峰式,呵w ## Property、Function 等等 建議是採用小駝峰式的寫法 ## Null Boolean `null`、`true`、`false` 建議是採用全小寫的寫法 > 雖然我的 `null` 好像都全大寫 ## MERGE 另外像是 `MERGE` 中的 `ON CREATE`、`ON MATCH` 建議是使用縮排的方式,類似這樣 ```sql MATCH (p:Person {name: 'Alice'}) MERGE (c:Company {name: 'Wayne Enterprises'}) MERGE (p)-[rel:WORKS_FOR]-(c) ON CREATE SET rel.startYear = date({year: 2018}) ON MATCH SET rel.updated = date() RETURN p, rel, c; ``` --- 好的,大概就寫到這裡 寫一寫才發現,我好像都沒在遵守 (( 笑 另外還有像是對於空格 ( 空白 ) 的要求之類的 我覺得就有點... 這是必要的嗎,的感覺 所以就只把重要的抓出來了 正篇倒數 1 篇,oh Yeahhhhh~ 下篇 **來舉例一下 Neo4j 的實務應用** 究竟鐵人賽能不能完賽呢,讓我們繼續看下去 --- ## 參考資料 [Neo4j Cypher Style-Guide](https://neo4j.com/developer/cypher/style-guide/) ## 紀錄 撰寫日期:2020/10/11 耗時: 30 出頭分鐘