Share
Embed
Transcript
29 slides
-
ç~¡ÙåqÙÍ ORMāÍàÍ Þëàõêö~¡ÙåòÙÍ
WebăĨijďĹēıĸëĕďĹIJĥijĜĄāäàõêìRESTfullçÍÎ Ï`Ò9 RESTfulléÏ`ìĉħĔćčĞZ.ëMVCĦĵĹĬķĹčç NÒÍ MVCĦĵĹĬķĹčì·&|ÒÍ ĉħĔćčĞZ.MVCëModel³ ìÇORMāÎç·Òn Ļű!æéÍçÖÿø¸°ãåÍýçÖÿöhüóÛÒÇ®ÙåØÍļ -
Web Applica�onæ9 éÖç ĕďĹIJĥijĜĄ: – ÍãîÍăčĖĕÙåÓåö9:ĺ
ĻÛ×ÍđĹģĹāÎ`uāºÔļ &|: – ·ÒbÍĺĭĸĜĠĸĕÒnĺ Ļ ]ā4øÛçÍÎ`uāºÔļ -
Ques�on: èÎøãåÊÍãîÍăčĖĕÙåÓåö9:Ëêł Answer: đĹģĹæëmāwûÞÎĺ đĹģĹæëmë#wìÇREST(Representa�onal State Transfer)
éÏ` ĻRESTfullļā±Ûþí>}æÓóÛÈ 1. ĕĜĹĞĵĕ(State less)éčIJąăĸĞ/đĹģĨĶĞĐĴ 2. ÛñåëQ3Â(ijėĹĕ) ê±æÓýÊúÔ=Øþà\ËëĖĚĞ 3. ijėĹĕāRê¨"ÛýÊréo^Ë 4. ăĨijďĹēıĸëQ3ç{S²ë`āWÎÖçÒæÓýÊĢąĤĹĭ ĝĄăëË -
ŀÆĕĜĹĞÊĦĴËéĢĸģĹċĹēıĚĨ ĕĘĚĦ ?A v^èÎéØÍóÛÑł ?AæÛÈĢĸģĹċĹØÍ ĩĜĞìèÎéØÍóÛÑł
ÀôzìèÎéØþóÛÑł ĩĜĞöØÍÈ ĐĹIJÔáØÍÈ ³æľĿĽêéüóÛÈ -
ĕĘĚĦĻđĹģĹļÒ ?ĻčIJąăĸĞļë{Sā ¢TÛýLÒÌý äóüÇÍãîÍ?Òjýç0 ¢TÛýLÒÌýëæÇĕďĹĴÒ1
½ÈĻŁPÙÍÑéÇ}ëăĨijďĹēıĸë{tļ ĕĜĹĞÊĦĴËéĢĸģĹċĹēıĚĨìÇ -
ŀÆĕĜĹĞÊĵĕËéĢĸģĹċĹēıĚĨ ĕĘĚĦ ? v^èÎéØÍóÛÑł ?AæÛÈĢĸģĹċĹØÍ
ĩĜĞìèÎéØÍóÛÑł ÀôzìèÎéØþóÛÑł ?AæÛÈĢĸģĹċĹçĩĜĞØÍ ?AæÛÈĢĸģĹċĹçĩĜĞçĐĹIJÔáØÍÈ ³æľĿĽêéüóÛÈ -
ĕĜĹĞÊĵĕËéĢĸģĹċĹēıĚĨìÇ ĕĘĚĦĻđĹģĹļÒ ?ĻčIJąăĸĞļë{Sā ¢TÛýLÒyÍ
äóüÇÍãîÍ?ÒÓåö¢TÛýLÒyÍëæÇĕďĹĴÒ@dÈ ĻijhýñÓ;ļ -
Ques�on:ÆèÎøãåĕĜĹĞĵĕā>}ÛýëÑł Answer: ÆURI ( URL )āÏíjóÛÈ
ôĂéúÔýĐąěæÛÈ h�p://weather.yahoo.co.jp/weather/jp/13/4410.html RESTëÊijėĹĕāRê¨"Ûýréo^Ëê FÙóÛÈ -
ŀÆĢĸģĹċĹēıĚĨëURI ĕĘĚĦĻđĹģĹļðëv^ – ?ŀÆ?A – ĭąĸĭġįĹŀÆĢĸģĹċĹ
– đħĭġįĹŀÆĩĜĞ – ğijĸčŀÆĐĹIJ h�p://macdnald.com/client/a/orders/new/main/burger/sub/potato/drink/coke ÐD ?A ĢĸģĹċĹ ĩĜĞ ĐĹIJ ăčēıĸ -
ŀÆĢĸģĹċĹēıĚĨëURI ?ë'ÛñåāURIæÛçÏíÇÇÇ v^ h�p://macdnald.com/client/a/orders/new/main/burger/sub/potato/drink/coke
v^@ë% h�p://macdnald.com/client/a/add_order/1/sub/cheese v^ëČĮĸĖĴ h�p://macdnald.com/client/a/delete_order/1 v^ë h�p://macdnald.com/client/a/orders v^ë¥ h�p://macdnald.com/client/a/orders/1 -
ÖþæĕĜĹĞĵĕÒ>}æÓýÒÇÇÇ 1. v^øv^@ā%ÛýURIÒy¹ê¶ÔéýëÒ«Í h�p://macdnald.com/client/a/orders/new/main/burger/sub/potato/drink/coke 2. ĕĘĚĦÒ¸°Ïåv^%Ùâ÷ãàüÇaêČĮĸĖĴÙàv^āE ČĮĸĖĴÙúÎçÙå¬ĀéÍÑł
Ļ,ÚURIêăčĖĕÙåÇâ÷Ăç,Ú{SÒXĻNļØþýëÑļ h�p://macdnald.com/client/a/delete_order/1 éèÇ?ĻđĹĥĕļöĕĘĚĦĻđĹģĹļöK´ Ò8ÍÈ ĐĐ ĐĐ -
Ques�on:ÆèÎøãå?çĕĘĚĦëK´ ā¡sÛýëÑł Answer: ÆøüàÍ ê+ãàHTTPĭėĚğāÎç<ĺ RESTëÊÛñåëQ3Â(ijėĹĕ) ê±æÓýúÔ=Øþà\ëĖĚĞËê FÙóÛÈ
ÞþæìòèëĢĸģĹċĹēıĚĨëURIæ¦cÙóÛÈ -
ŀÆøüàÍ çHTTPĭėĚğëĪĚĨ HTTPĭ ĭė ėĚ Ěğ ğ ? ?ë
ë' ' DBë ë\ \ (CRUD) , ,Ú Ú{ {S Së ë X X Ļ Ļ N Nļ ļ POST v^ë% CREATE yÙ GET v^@ë)J v^ ë)J READ hü PUT/PATCH v^@ëf_ UPDATE ³Çhü Ļf_A© 7êG ¾āÏéÍàõļ DELETE v^ëČĮĸĖĴ DELETE hü -
ŀÆ>»ëURL ĉĹęĹë h�p://macdnald.com/client/a/orders ĉĹęĹë%
h�p://macdnald.com/client/a/orders/new ĉĹęĹë¥ h�p://macdnald.com/client/a/orders/4123 ĉĹęĹë6f h�p://macdnald.com/client/a/orders/4123 ĉĹęĹëČĮĸĖĴ h�p://macdnald.com/client/a/orders/4123 POST GET DELETE GET PUT HTTP method URL -
ĕďĹIJĥijĜĄëóçõ ĕďĹIJĥijĜĄā>}ÛýàõêìRESTfullêÙú Îĺ RESTfullì ë@ā±!ê>ÙúÎĺ
– ĕĜĹĞĵĕêÛýÈ – ĕĜĹĞĵĕêÛýêìÇURIê{SāYàÝúÎÈ – URIā<êWÎêìÇøüàÍ ç +ãàHTTPĭėĚğ āÐÎ -
&|ëÍweb applica�on· 1. G¾2Ò ÑüøÛÍ – ĨĶĎIJĬ,5Ò+( loose
coupling)æÌýÈ MVC framework !!! 1. §ÒåöáÍàÍêÒhýëÑÒ~¡æÓýÈ – ĨĶĎIJĬëH$ĻDBçëøüçüÇHTMLëUļÒcê Ñþå ÍýÈ MVC framework !!! -
MVCăĨijďĹēıĸë čIJąăĸĞ 1. HTTPijčĈĕĞ (URI, HTTPĭėĚğ)
Rou�ng / Dispatcher Controller DB Model 2. URIçĭėĚğë¡k View 3. ăčēıĸĻ~ļëZ= 5. DBðë~ ĻCRUDļ 8. İĹĒĹHTMLāU 4 6 7 9 10.HTTPĵĕĩĸĕ Applica�on -
>}êÐÍå½ÙÍĩąĸĞ DB Model 5. DBðë~ ĻCRUDļ
RDBçĻObjectZ.ëļMVCìÇÊ NÒOÍËÈ liéÏ`Ò°ÎàõÇÙåÍýÈ – RDBìÇÃàáëĻĕĊIJĹļÄ – ObjectìÇÃ[ýÍĻĭėĚğļçCNĻĭĸģļÄ -
ÞÖæORM (Object-‐rela�onal mapping) *ÉëĜĹħĴāÞþßþClassçÙåWÎÈ ĜĹħĴëĊIJĬìǤFÛýčIJĕëCNĻĭĸģļçÙåWÎÈ
ĜĹħĴðë\ìUserModelÑûÎÈ Class User extends Model { } User Table = Class User extends Model { protected name } User Table -‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐ Name | varchar(256) = $user = User::find_by_id(3000); $user.name //= akira SELECT * FROM user WHERE id = 3000; // id | name // -‐-‐-‐-‐ |-‐-‐-‐-‐-‐ // 3000 | akira = -
gIêÇĨĶĎIJīĸĎāÛýàõëKoÏ ĻçÍÎ-ëпÍļ CoC: conven�on over configura�on
– ì·ës=ÛñÓÖçĻ£=ļāwBØÝÇ(êÛý DRY: Don’t Repeat Yourself – Q3ëµì6fë1½Øā49Ù¯cNāwBØÝÇāÚý ĻvRŀ No Once and Only One( OAOO ) ļ KISS: Keep it Simple, Stupid – ėĦĞĆćăÒ¼êéýêäþåÇÍ`āJÛýe¸Ò4ÏàüÇ\êV¸ )ãàüÇèþÒµépéëÑ ÑûéÔéýÈ YAGNI: You ain’t gonna need it – pì>»êLçéýóæì%ÙéÍëÒúÍÈÌçæÎáÿÎçëxëê ãàöëìÇ>»êì10%EÙÑĀþéÍÈÙàÒãåÞþêªøÙàe¸ë 90%ìyÁêéýÈ