Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
オブジェクト型(Developer Conference 2018より)
Search
4D Japan
January 04, 2019
Technology
200
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
オブジェクト型(Developer Conference 2018より)
4D Japan
January 04, 2019
More Decks by 4D Japan
See All by 4D Japan
4D 21 R4
miyako
0
19
4D 21 R2 R3
miyako
0
36
4D 21 LTS
miyako
0
20
4D 21
miyako
0
47
4D 20 R10
miyako
0
53
4D 20 R9
miyako
0
45
4D 20 R7 & R8
miyako
0
90
Unicodeの話 (2007)
miyako
0
55
Unicodeの話 (2008)
miyako
0
64
Other Decks in Technology
See All in Technology
構造で守らせる データ・法務・セキュリティ・開発チームとつくる AI時代のデータガバナンスとデータ基盤のリアル
legalontechnologies
PRO
1
350
dbt Semantic Layerで進めるenechainのデータ民主化
akizhou
1
260
AWS DevOps Agentはどこまで任せられるか 〜機能の現在地と、機能拡張の実践〜
nyankotaro
0
220
「作れる」と「リリースできる」の間にあったもの── PdMを外して見えた、PdMがやるべき仕事/Buildable ≠ Shippable: What Removing the PM Taught Me About the PM’s Job
yappli_developers
0
240
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
1.2k
20261017福岡devIO 「AIは"良いダッシュボード"を作れるか?
jtakeda
0
260
freeeにおけるSoftware Factory
freee
PRO
0
470
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
4
690
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
710
背中から、背中へ ー 社外コミュニティで学んだ「雑に背中を押す」という恩送り ー / easygoing encouragement and pay forward to community
naitosatoshi
0
200
撮るだけでは終わらない。ソニーが挑むB2Bカメラソリューション開発
sony
0
110
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
370
Featured
See All Featured
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
Paper Plane
katiecoart
PRO
5
54k
Scaling GitHub
holman
464
140k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
How to build a perfect <img>
jonoalderson
1
6.2k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
710
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
330
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
310
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Transcript
Object is not JSON by Laurent Esnault JSON JSON !?
JSON != is not
/ 好 理由 Inspired 不要 類別 名前 追加
対 制約 •OB Get (object ; propertyName {; type}) •object.propertyName
•object[propertyName] •WP GET ATTRIBUTES
4D Write Pro 4 ⽅法 Four Different ways to Use
Objects with 4D Write Pro! https://blog.4d.com/four-different-ways-to-use-objects-with-4d-write-pro/
C_OBJECT 変数 変数 値 変数 値 値 $myObject $myObject reference
!= is not
参照 $myObject:=$otherObject $myObject:=New object $otherObject:=New object $myObject reference1 $otherObject reference2
$myObject reference2 $otherObject reference2 変数 代⼊ 参照
BLOB TO VARIABLE ($blob ; a.b.c) ->a.b.c 変数 != is
not × ×
OB SET 特殊性 •OB SET ($myObject ; "code" ; 1)
変数 •OB SET (myGetObject() ; "code" ; 1) 値 reference reference OB SET 新規 $myObject.code:=1
Null Undefined Undefined 存4 Undefined Null 存4 値 知 C_OBJECT,
C_COLLECTION C_POINTER Null • : Undefined Null Undefined • If (a.b = Null) Null 状態 値 ,数
未定義 怖 良 理由 Don’t be Afraid of Undefined Values
https://blog.4d.com/object-notation-improvement-after-customer-feedback/
循環
循環 / v16# BLOB v17# BLOB v17#
/ Null Undefined $0.value:=$1.value+$2.value $0->:=$1->+$2->
Non-JSON zn BLOB# Integer# Date# 16R6 String type with time
zone:1 String type without time zone:0 Date type:2 !2018-10-22! "2018-10-22" "2018-10-21T15:00:00.000Z" "2018-10-22T00:00:00.000Z" Stringify:
Non-JSON zn BLOB# Integer# Date# 16R6 Time# v17 Pointer# Stringify:
Image# Stringify: [object Picture] ORDA# Stringify: [object DataStore] [object Entity] [object EntityCollection] Write Pro View Pro# Stringify:
JSON εΩʔϚ JSON Parse JSON Validate DTD XSD SET ARRAY/OB
GET ARRAY
C_COLLECTION OB SET ARRAY/OB GET ARRAY
配列 એݴͱఆٛ ARRAY TEXT($arr;n) C_COLLECTION($col) $col:=New collection λΠϓ ⼀律 混4
ೖ $arr{$i}:="hello" $col[$i]:="hello" αΠζ Size of array($arr) $col.length ఴࣈ 0 ·ͨ 1 ͔ΒSize of array ·Ͱ 0 length-1 C_COLLECTION
Inspired copy concat combine count clear query reduce orderByMethod pop
remove push sum sort unshift some slice reverse shift resize map join min max orderBy lastIndexOf indices indexOf find filter insert findIndex extract every distinct equal fill countValues average
追加# 削除# 並 替 # 計算# ⽐較# 複製 挿⼊# 検索#
取 出 # ⽂字列変換# Inspired extract map some every indices indexOf find filter query join Split string copy concat combine slice distinct equal count sum average min max reduce orderBy orderByMethod sort reverse pop shift remove clear push insert unshift resize fill countValues lastIndexOf findIndex
⼤幅 拡張 管理 https://blog.4d.com/a-wide-range-of-possibilities-to-manage-your-collections/ A Wide Range of Possibilities to
Manage your Collections
For each = For ($i;0;$collection.length-1) MESSAGE($collection[$i]) End for
For each = For each ($element;$collection) MESSAGE($element) End for each
For ($i;0;$collection.length-1) MESSAGE($collection[$i]) End for
For each = = For each ($propertyName;$object) MESSAGE($propertyName) End for
each
For each = = = For each ($entity;$entitySelection) MESSAGE($entity.name) End
for each
For each = = = For each ($element;$collection) While($element#"") MESSAGE($element)
End for each
For each = = = For each ($element;$collection) Until($element="") MESSAGE($element)
End for each