Գրքի ակնարկ. Grok 1 վեբզարգացում

Վերջերս Django ասուլիսին մասնակցելուց հետո Բեռլին վերադառնալիս գնացքում վերջացրեցի Կարլոս դե լա Գադիասի Grok 1,0 վեբզարգացման grok 1,0 վեբզարգացում վերաբերյալ ակնարկը :-):

Վերջաբան. գիրք, որը հնարավորությունէ տալիս իմանալ ամեն ինչ grok-ի վերաբերյալ: Որպես հիշեցում նշենք, որ այն շատ հարմար է, եթե դուք առաջադեմ տեխնիկայի կիրառող եք և պետք է արագ իմանաք՝ ինչպես տեղակայել ձեր ծրագիրը կամ ինչպես ստեղծել օգտատերեր և ապահովել անվտանգություն:

Հաջորդիվ, գլուխ առ գլուխ ես կներկայացնեմ իմ նշումները, քանի որ դա ամենահարմանր մեթոդն է գրքի վերաբերյալ իմ կարծիքը արտահայտելու համար:

Գլուխ 1: Grok-ի ներածություն: grok-ի երեք առավելությունները. Zope-ի բաղադրիչների կառուցվածքը, օբյեկտների տվյալների բազա, օբյեկտի հրապարակում և հակադարձում: Բոլոր երեքն էլ բացատրված են: Zope-ի բաղադրիչների կառուցվածքը իր հակիրճության հետևանքով դժվար է հասկանալ, եթե չեք տիրապետում տերմիններին (“համակցող”, “սպասարկող”): Հակադարձումը պարզապես աշխատանք է: Դուք կարող եք ունենալ օբյեկտների կամայական հիերախիա և grok-ը հեշտորեն կհակադարձի այն: Packt-ի լուռ դասավորությունը (հսկայական վերնագրեր, նաև h3 վերնագրերի համար) ներկայացնում է այս գլուխը որպես վերնագրերով հագեցած էջ 12: Սակայն այն չենք դիտարկում որպես հեղինակի բացթողում :-):

Django-ի և երկաթգծերի ռուբինի հետ համեմատությունը տեղին է: Grok-ը հետևում է RoR-ի «Մի կրկնեք ինքներդ ձեզ» և «կոնֆիգուրացիա կոնվենցիայի շուրջ» կարգախոսերին, միաժամանակ համադրում է սրանք Zope-ի խիստ և պարզ բաղադրիչների կառուցվածքին: Django-ն նաև ընդունում է RoR-ի երկու բնութագրերը: Django-ն առավելապես կենտրոնացած է վերջաբանների տվյալների հարաբերական բազայի վրա և ձգտում է պահպանել հիմնական մասը խիստ գաղտնի (սեփական ORM-ը, սեփական ձևանմուշով լեզուն և այլն)՝ Django-ի ադմին ինտերֆեյսը գործի դնելու նպատակով:Grok-ը այսպիսի ադմին ինտերֆեյս չի կիրառում, ուստի ավելի հեշտ է կիրառել sqlalchemy-ն:

Գլուխ 2: Սկսենք Grok-ից: Grok նախագիծը հարմար գործիք է Grok նախագիծը միջավայրին համապատասխանորեն ձուլելու համար: Այն Paster կոդը կիրառող սերնդի գործիքների շուրջ արված փաթաթան է: դուք դորս եք բերում գործարկման պատրաստ ծրագիր:

Գլուխ 3: Ակնարկներ: Քանի որ սա գործարկմանն ուղղված առաջին փորձերն են, Grok-ի որոշակի կոնվենցիաներ պետք է բացատրվեն: Հետևենք Zope’s TAL/TALES կաղապարային լեզվի երկար բացատրություններին; Թվում է՝ յուրաքանչյուր Plone/Zope/Grok գիրք պետք է այս կերպ մեկնաբանվի՝ հզոր կաղապարային լեզու և հստակորեն ներմուծված html, և ոչ թե Django-ի խճճված փակագծերով տարրեր: Django-ի խճճված փակագծերով տարրերի միակ առավելությունը դրա հասկանալի և խուսուն լինելն է, քան TAL-ի html/xml տարրերը: (Ես դեռևս նախընտրում եմ TAL, btw-ը)

TAL-ի առավելությունը կայանում է նրանում, որ ավելի հեշտ է տեղադրել անմիտ տվյալները վավեր կաղապարի մեջ այնպես, որ դուք կարողանաք տեսել ինչ եք անում: Նաև դուք կարող եք գործարկել որոշակի css-ր: Դուք կարող եք ստեղծել համապատասխան էջ և կոդից դուրս բերել ձեզ անհրաժեշտ տվյալները նախքան python-ում (ծրագրային լեզու) տեղադրելը: Այս տարբերակով դուք ձեռք եք բերում ավելի լավ կոդ: Գիքը ևս տալիս է այդ հնարավորությունը:

Գլուխ 4: Մոդելներ: Ըստ նախնական տվյալների Grok-ը կիրառում է Zope-ի աբյեկտների տվյալների բազան: Սա առավել պիտանի է python օբյեկտների համար, քան հարաբերական տարրերով գծագրված (ORM ) sql տվյալների բազան: Գլխում հստակորեն նշված են առավելությունները: Այստեղ ներառված է նաև հավաքագրող մեխանիզմը, որի միջոցով դուք կարող եք կառուցել կամայական հիերախիաներ, եթե լինի դրա անհրաժեշտությունը (օրինակ՝ բովանդակության կառավարման համակարգ կամ համացանց):

Գլուխ 5: Յուրաքանչյուր շրջանակ ունի որոշակի սխեմայից մոդելներ դուրս բերելու մեխանիզմ: Gro-ը ևս ունի և գրքում նկարագրված են բոլոր հնարավոր տարբերակները՝ ներառյալ գործող սխեմաների տեսակների ցանկի (ընտրանք, URI, TextLine և այլն):

Գլուխ 6: Կատալոգ կամ ջեքփոթ: Եթե դուք կիրառում եք zodb, ապա կարող եք որպես օգնություն ավելացնել ինդեքսներ ձեր փնտրած տվյալները գտնելու համար: Ինչ-որ մեկը ձեր տեքստերի տարբեր դաշտերում ամբողջական տեքստ է փնտրու՞մ: Հրաշալի է: Այս գլխում Grok-ը կօգնի քեզ:

Գլուխ 7: Անվտանգություն: Zope-ի և Grok-ի անվտանգությունը հզոր է: Ի տարբերություն մյուս շրջանակների առաջարկած տարբերակների, այստեղ առաջարկվում է յուրաքանչյուր տարրի անվտանգության ապահովում ամբողջական դասակարգում ընդհանուր անվտանգության փոխարեն: Սա չի նշանակում, որ գլուխը դժվարամարս է, անկախ նրանից, որ կան ուսումնասիրության ենթակա հասկացությունների մի քանի դասակարգումներ(օգտվողներ, օգտատերեր, դերեր և քաղաքականություն): Սրանցից շատերը ներկայացվում են xml կոնֆիգուրացիայի տեսքով, իսկ սրանցից շատերը կարող են դասականորեն կազմավորվել Grok-ի չափորոշիչներին համապատասխան: Գլխում նաև բացատրվում է, թե ինչպես պետք է ավելացնել հստակորեն գործող ծրագիր, որն իսկապես վավեր է և այսպես շարունակ: Միշտ հետաքրքրել է, թե ինչու սրանք չեն ներառվում Grok-ի մեջ: Ես արդեն սովոր եմ կիրառել իմ Plone ժամանակը: Այնուամենայնիվ, գլխում հստակորեն ներկայացված են կիրառման բոլոր տարբերակները:

Գլուխ 8: Նախագիծ: Grok-ը ձեր կաղապարը գործի դնելու հարմար տարբերակ ունի, որոնք կարող են հեշտորեն կիրառվել կոդում: Կաղապարը կոչ է անում մատուցել viewlet մենեջերը, իսկ կոդը հոգ է տանում , որպեսզի այս փոքր viewlets-ը տեղադրվեն viewlet մենեջերների մեջ: Այս դեպքում կաղապարը հոգ չի տանում մենյուի միավորների քանակի մասին, օրինակ, այն գործի է դնում viewlet մենեջեր մենյուն: Անհրաժեշտության դեպքում ցանկալի է ներմուծել ինչ որ տարր կաղապարի մեջ:Ի տարբերություն Django-ին, այստեղ փաթեթից դուրս ոչինչ չի կիրառվում, դուք պետք է ինքներդ ինչ-որ տարր ներմուծեք:

Նախքան viewlet տարրերին անդրադառնալը գլխում բացատրվում է, թե ինչպես է Grok-ը դիտարկում տարրերը և այն դարձնում տեսանելի և վերածում կաղապարների: Ես զարմացած էի այս տեղեկությունն այստեղ գտնելով: Սա, հավանաբար, լավագույն տեղն է:

Նախագծի վերաբերյալ Grok-ն ունի ուրույն կարծիք: Django-ն (որով ես հիմա աշխատում եմ) չունի նախագծի հիշողություն, դուք պետք է ինքներդ այն ներմուծեք: Ենթադրաբար, ավելի լավ է ինքներդ ներմուծեք, քանի որ կայքերը շատ տարբեր են: Մյուս կողմից, Plone-ն իսկապես ունի նախագծի հիշողություն՝ համադրված պատրաստի նախագծով և հիմնական մեծ կաղապարով:

Գլուխ 9: Grok և ZODB:ZODB-ն python-ի հեշտ կիրառելի տարրերի տվյալների բազա է: Այս գլխում բացատրվում են ZODB մանրամասները ACID-ի, գործարքների, ZEO կրկնօրինակների, փաթեթավորման և այլնի նման (ձեր տվյալների բազայի կրկնօրինակն իսկապես հեշտ է ստեղծել!)

Գլուխ 10: Grok և հարաբերական բազաներ: Չեք կարծում, որ Grok-ը կսառեցնի տվյալների հարաբերական բազաները: Այս գլխում ձեզ կբացատրենք, թե ինչպես sql տարրերը որպես Grok-ի հիմնական մասեր կիրառելով մուտքագրեք sqlalchemy ձեր Grok նախագծի մեջ:

Գլուխ 11: Grok-ի հիմնական հասկացությունները: Grok-ը կիրառում է Zope բաղադրիչի կառուցվածքը՝ ինտերֆեյս, համակցող, իրադարձություն և այլ: Այս ամենի բացատրությունը տրված է այս գլխում:

Համակցող տարրը իմ ամենասիրելի տարրն է Django-ն կիրառելիս: Ես սիրով այն կիրառում եմ: Առանց ամբողջական Zope-ը կիրառելու, դուք կարող եք գործարկել ինտերֆեյս/ համակցող տարրերը: Ես երբեմն ստիպված եմ լինում գծագրի մեջ որևէ տարր ներմուծելու կիրառելով IMapRenderable կոչվող համակցող տարրը, քանզի ավելի դժվար կլինի գործիքների գործարկման բաժնում տարրեր ներմուծելը: BFG-ն Zope տեխնիկայի կիրառմամբ պահպանում է ողջ Zope տեխնիկան սովորական api մեթոդների փոքր թվերում բարդություններից խուսափելու համար(եթե ճիշտ եմ հիշում փասռաթղթերը): Սա փորձարկելու համար լավ գաղափար է:

Այնուամենայնից, գլուխը շատ օգտակար տեղեկություներ է պարունակում: GroK-ի կիրառած տարբեր Zope կոնցեպցիաների վերաբերյալ գրված է հստակ ներածություն:

Գլուխ 12: Grokkers: Grok-ը օգնում է գործարկել ձեր նախագիծն ու կիրառել Zope տեխնիկան հեշտորեն: Ոչ մի xml sit-ups-ր կիրառված չեն: Դուք դա ինքներդ կարող եք անել; Ստեղծեք ձեր սեփական grokker-ը: Այս գլխում կարող եք գտնել այն իրականացնելու տարբերակները: Ներկայացվում են Django-ից՝ Django-ն արդյունավետ կերպով համադրում է իր տարրերը մոդելների հետ, կան բազմաթիղ գործիքներ ձեր մոդելում լրացուցիչ դաշտ ավելացնելու համար:

Ինձ համար գլխում կային զվարճալի մանրամասներ, օրինակ, էլեկտրոնային նամակ ուղարկելու համար տեխնիկայի ներմուծումը: Սա հենց նույն թեման է, որի վրա ես աշխատում էի անցյալ տարի: Այս գլխում ներառված տեղեկությունը միշտ ձեռքիս տակ կլինի աշխատելիս:

Գլուխ 13: Փորձարկում և կարգաբերում: Շատ ասելիք չկա; Grok-ը հնարավորություն է տալիս կիրառել պատրաստի փորձարկման մեթոդը: Գլխում կարելի է գտնել բոլոր մանրամասները:

Գլուխ 14: Տեղակայում: Այստեղ ևս շատ ասելիք չկա: Իմաստալից գլուխ է: mod_wsgi-ը կիրառելու լավ կոչ է: Զրոյական տվյալներով բազայի կրկնօրինակում ստեղծելու տարբերակները հստակ ներկայացված են: Մուտքագրելը դժվար չէ, պարզապես պետք է ունենալ գործարկման մեկ օրինակ:

Կրկին իմ եզրակացությունը՝ հրաշալի գիրք է: Խորհուրդ եմ տալիս կարդալ, եթե դուք grok կիրառող եք:

source: http://reinout.vanrees.org/weblog/2010/05/24/grok-web-development-review.html