El kell kezdenem egy új keretrendszer tervezését és fejlesztését, hogy kölcsönhatásba léphessek egy nyílt forráskódú ECM-mel. Ez magában foglal egy testreszabott adatmodellt, amely segíti a weboldalak fejlesztőit, hogy interakcióba lépjenek az ECM-mel, így nem kell törődniük a csomópontok manipulálásának részleteivel és más alacsony szintű részletekkel. Ez csak egy csomó osztály és módszer a fejlesztésre. / p>
Kétségeim vannak a projekt megszervezésének és irányításának kezelésével kapcsolatban: Van-e általános szabály, amelyet be kell tartani, tippek, bevált gyakorlatok vagy valami, amit szem előtt kell tartani az ilyen típusú projekt kidolgozása során?
Biztos vagyok benne, hogy van némi különbség a keretrendszer, a könyvtár és az alkalmazás fejlesztése között.
Megjegyzések
- tegyük fel, hogy az ECM vállalati tartalomkezelést jelent [rendszer]?
- Igen, én ‘ m dolgozom az Alfresco-val
Válasz
Először írom a 2 szabályomat a keretrendszer-pazarlás elkerülésére:
- Meglévő hiánya, amely a igényeim és bővíthető, hogy megfeleljen az elmúlt 20% -nak
- A közeli Biztos vagyok benne, hogy újra felhasználom, egy másik alkalmazásban
Miután ezeket átadta, ellenőrizze ezt:
- http://www.slideshare.net/brada/framework-design-guidelines-presentation
- http://www.informit.com/podcasts/episode.aspx?e=5a161893-c1ce-4449-8b67-31baa54ce316
- http://www.marlabsblogs.com/?tag=microsoft-framework-design-guidelines
Megjegyzések
- Hozzáteszem, hogy ha ‘ nem talál keretet, amely megfelel a 80/20 szabálynak, akkor sem rendkívül egyedi tartományban VAGY nem ‘ nem érti eléggé a domainjét.
Válasz
1) A szolgáltatásokat csak akkor szabad hozzáadni a keretrendszerhez, ha kivonják őket a működő kódból. Más szavakkal, mielőtt hozzáadnád az újszerű ötletedet az újszerű keretrendszerhez, győződj meg arról, hogy az valóban hozzáadott értéket jelent és csökkenti az ismétlődést egy működő, valós életű alkalmazásban.
2) Dokumentáció, dokumentáció, dokumentáció.
3) Dokumentáció, dokumentáció, dokumentáció.
Válasz
Fájdalmas élmény és sok elpazarolt erőfeszítés vezesse ezt a tanácsot: vonja ki vagy alakítsa át a keretrendszert egy működő szoftverből. Készítse el ezt a szoftvert, szem előtt tartva, hogy úgy gondolja, hogy a jövőben ki akar bontani egy keretrendszert, de először ne építse fel a keretrendszert.
Válasz
Javasolnám a Kerettervezési irányelvek könyvet. Ez pár éves, de az alapelvek továbbra is igazak. Rengeteg minta van, és megmagyarázza a keretrendszer készítésekor meghozandó döntések hátterét.
Válasz
1) Tartsa be a jó konvenciókat már a kezdetektől fogva, győződjön meg arról, hogy dokumentált egy nagyon specifikus konvenciót, a legjobb keretek azok, amelyek belsőleg konzisztensek.
2) Győződjön meg arról, hogy minden nagyon dokumentált, a jótól kezdve a kódos megjegyzéseket egészen annak elmagyarázásáig, hogy a legfontosabb funkciók mit igényelnek és hoznak létre, még akkor is, ha ez számodra nagyon egyszerűnek tűnik, előfordulhat, hogy valaki a 14. egyenes órában használja, és csak szükségük van erre az egy dologra akkor.
3) Készítsen magának egy projektbemutatót, azzal, hogy mit szeretne elérni a kerettel, reális célokat és általános prioritásokat.
4) Ha az emberek számára elérhetővé válik, győződjön meg róla, hogy valamilyen támogatási folyamat / hibakeresés van a helyén. Hibák lesznek, ez mindannyiunkkal előfordul, de ha már kezeli őket, akkor könnyebbé teszi az életét.
Mindent összevetve, hasonló megközelítés bármilyen alkalmazás elkészítéséhez, de a fejlesztők még hevesebbek, mint a felhasználók, és a legjobb keretrendszerek azok, amelyeket felvehetünk, értelmezhetünk, és nem kell küzdenünk.
Válasz
Nem értek egyet sok elhangzottal, és úgy érzem, hogy még többet nem említettek, ezért a semmiből indulok.
Agilis módszertanok
A keretrendszer fejlesztése során alkalmazzon agilis módszereket, hogy alkalmazkodhasson a változásokhoz, gyorsan reagálhasson az útlezárásokra, és biztosítsa a funkcionális, minőségi végterméket. Az agilis módszertanok azok, amelyek az “Agilis kiáltvány” szerint elsőbbséget élveznek:
Egyének és interakciók át folyamatok és eszközök
Működő szoftver over átfogó dokumentáció
Ügyfél-együttműködés over szerződés tárgyalása
Válasz a változásra over egy terv követésével
Ez igaz. Azt mondtam, hogy a funkcionalitás fontosabb, mint a dokumentáció. Ne feledje, hogy az “Agilis kiáltvány” megemlíti, hogy a jobb oldali prioritások továbbra is fontosak, még kevésbé mint a baloldaliak.
Kommunikáció
Aki készíti a keretrendszert, tudnia kell:
- Hogyan fogják használni: a célalkalmazás
- Milyen problémát kíván megoldani: a célprobléma
- Ki fogja használni: a célközönség
Például, ha egy vállalat egy végleges alkalmazást szándékozik kifejleszteni az ASP .NET-nel, akkor ostobaság lenne azt mondani a programozóinak, hogy “készítsék el ezt a keretrendszert” anélkül, hogy elmondanák nekik a fentieket. Ha a programozók nem ismerik a célalkalmazást, nem biztos, hogy weborientálttá teszik. Ha nem ismerik a problémát, akkor más célra készíthetnek keretet. Ha nem tudnák a közönséget, akkor programozhatnák a keretrendszert C ++ nyelven. Ezen körülmények bármelyike haszontalanná tenné a kapott keretet.
Stílus
Mondanom sem kell, hogy programozási stílust kell létrehozni. / format és ragaszkodjon hozzá.
Az E “s
- modularitás : A kódot programozottan, nem szó szerint használja fel újra.
- Hatékonyság : A kódot újrafelhasználásra tervezték . A sebesség káros hatásai megsokszorozódnak.
- Karbantarthatóság : A keretrendszert szerkeszteni frissítsen több programot anélkül, hogy módosítania kellene az említett programokat.
- Használhatóság : Az alkalmazások valóban használhatják a keretrendszert anélkül, hogy átugrana a karikán?
- Gyakorlati tudnivalók : Ne találja újra a kereket, ha nincs hogy ezt tegye. A keretrendszere más keretrendszerektől is függhet.
- Redundancia : Kivételek / hibák fogása. Mindenhol. Kezelje őket. Mindenhol. Soha ne bízzon a kódok kivételével a helyi hatókörű kódokban a hibák kezelésében, még akkor is, ha tudja, hogy igen.
Megjegyzések
- Üdvözöljük a P.SE-nek! Nem ‘ nem értek egyet azzal, hogy a kivételek befogadására az Ön keretrendszerében csatlakozom. Én ‘ nagy híve vagyok annak, hogy a keretrendszernek abszolút huncutnak kell lennie, és kivételeket kell vetnie, és a programozóra kell bízni a keretrendszert, hogy elkapja őket, vagy (még jobb) átirányítsa a kódot, így a kivétel elkerülése érdekében – ösztönözve az egyezmények megfelelőségét.
Válasz
Biztos vagyok benne, hogy van némi különbség a keretrendszer, a könyvtár és az alkalmazás fejlesztése között.
A fejlesztési folyamatok lényegében megegyeznek. A különbségek a marketinggel és a telepítéssel kapcsolatos problémákra vezethetők vissza, bár azt tapasztalom, hogy a legnagyobb különbségek általában a projekt hatókörét és definícióját tekintik. Ne feledje, hogy egy alkalmazás tartalmazhat vagy használhat keretet vagy könyvtárat, a keretrendszer pedig könyvtárak gyűjteménye lehet.
Kétségeim vannak a projekt szervezésével és kezelésével kapcsolatban: Vannak-e általános szabályok alacsony szint, tippek, bevált módszerek vagy valami, amit szem előtt kell tartani az ilyen típusú projekt kidolgozásakor?
A projekt szervezése és irányítása ismét minden fejlesztési projekt esetében megegyezik . Ismét a hatókörre esik. A keretrendszer megírásakor azonban érdemes nagyon világos elképzeléssel szolgálni arról, hogy mit is akarsz elérni, és szigorú tervezési szabályokat kell elhelyezni a keretrendszer nyilvános felületén az API-k következetességének biztosítása érdekében. Ha minden fejlesztőnek megengedi a saját dolgait, bonyolult rendetlenséget és nagyon inegegáns API-t fog kialakítani.
Második Ryan Hayes “ ajánlás az Kerettervezési irányelvek annak ellenére, hogy maga a könyv a .NET alapú keretrendszerek fejlesztését célozza, mert az általános tanács alkalmazható, függetlenül az Ön által választani kívánt konkrét megvalósítási technológiáktól.
Tapasztalatból azt tanácsolom, hogy ragaszkodjon ehhez. a klasszikus YAGNI-elv azáltal, hogy először a legegyszerűbb nyilvános felületeket valósítja meg, majd kibővíti, hogy később nagyobb irányítást és mélységet kínáljon, de ügyeljen arra, hogy hasznos neveket használjon annak bemutatására, hogy miért bővítik a módszereket vagy osztályokat. Sosem rajongtam az Ex vagy más hasonló utótagok hozzáadásáért a metódus nevekbe, vagy a számok hozzáadásába a kibővített interfészdefiníciókba. Különböztessük meg a funkcionalitást, és az Ön felületének / metódusainak egyértelműbbé kell válniuk, és remélhetőleg kevésbé zavarosak és zavarosak. / p>