'

Open Source CMS, MDD, TDD: Pros and Cons

Понравилась презентация – покажи это...





Слайд 0

17.10.2010 JazzTeam.org Springsite.com Eclipse Foundation Open Source CMS, MDD, TDD: Pros and Cons Eclipse Texo, Seam, Alfresco, XForms, Assembla Real world project highlights Дмитрий Горячко независимый J2EE консультант, основатель команды JazzTeam, Eclipse committer


Слайд 1

JazzTeam.org Springsite.com Eclipse Foundation 2/43 00 Введение О чём я расскажу Commercial outsourcing + open source Коротко об enterprise Java CMSs Презентация Texo Eclipse project Alfresco introduction and tips Open Source customization Project highlights Постараюсь, чтобы рассказ был не сухим и был интересным не только для java разработчиков


Слайд 2

JazzTeam.org Springsite.com Eclipse Foundation 3/43 Yageo.com Самый крупный производитель деталей для электроники Исторически сайт создавался компанией springsite.com Web 2.0 фаза


Слайд 3

JazzTeam.org Springsite.com Eclipse Foundation 4/43 Yageo.com


Слайд 4

JazzTeam.org Springsite.com Eclipse Foundation 5/43


Слайд 5

JazzTeam.org Springsite.com Eclipse Foundation 6/43 Как появился заказчик Всегда вкладывай в людей, с которыми работаешь Получена рекомендация У думающих людей не бывает плохого опыта Экспертиза fits requirements (Epam CMS) Мой вопрос к Аркадию Добкину и его ответ про продуктовые и аутсорсинговые компании Мысль материальна Заказчик из мира Open Source


Слайд 6

JazzTeam.org Springsite.com Eclipse Foundation 7/43 Задачи Integrate enterprise CMS Contact management Complicated search among all the products (including competitors) E-news, subscribers management Products management (batch update too) Web statistics Support all possible roles, flows (editor, admin, technical admin) All should be friendly-administrated


Слайд 7

JazzTeam.org Springsite.com Eclipse Foundation 8/43 Let us scrum киевское метро


Слайд 8

JazzTeam.org Springsite.com Eclipse Foundation 9/43 Особенности организации проекта


Слайд 9

JazzTeam.org Springsite.com Eclipse Foundation 10/43 Особенности организации проекта Distributed scrum team Customer is Open Source contributor Open for architecture changes No fear, motivated to new Not formal, friendly attitude Доверяйте интуиции Первая оплата через 2 месяца после начала проекта Проект на 2 года с большой плотностью инноваций весь срок


Слайд 10

JazzTeam.org Springsite.com Eclipse Foundation 11/43 Why not to use Mind Maps for project documentation


Слайд 11

JazzTeam.org Springsite.com Eclipse Foundation 12/43 Why not to use Mind Maps for project documentation


Слайд 12

JazzTeam.org Springsite.com Eclipse Foundation 13/43 Open for architecture changes Feel free to customize if need (coding) Seam Alfresco Chiba (OS W3C XForms implementation) Hibernate Eclipse Texo New phase of development (project Teneo)


Слайд 13

JazzTeam.org Springsite.com Eclipse Foundation 14/43 No fear, motivated to new We need apply recursion into XForms and implement/built in recursive AJAX UI – let us invest time/money into it and gain knowledge on this area deeper Конечно, позволял заказчик 2 человека-месяца (с высокой квалификацией) Alfresco server debug Complicated UI (hundreds of recursive controls, which are widgets itself)


Слайд 14

JazzTeam.org Springsite.com Eclipse Foundation 15/43 Recursive XSD widgets (xs:switch) AJAX based


Слайд 15

JazzTeam.org Springsite.com Eclipse Foundation 16/43 Recursive XSD widgets (xs:switch) AJAX based


Слайд 16

JazzTeam.org Springsite.com Eclipse Foundation 17/43 Recursive XSD widgets (xs:switch) AJAX based Jazz Koktebel


Слайд 17

JazzTeam.org Springsite.com Eclipse Foundation 18/43 Deployment


Слайд 18

JazzTeam.org Springsite.com Eclipse Foundation 19/43 01 Технологии Alfresco & ECMSs Texo Seam MDD & TDD


Слайд 19

JazzTeam.org Springsite.com Eclipse Foundation 20/43 Alfresco notes State of art. Wanna grow in Java – study sources of Alfresco or Seam Modularity All is node and services around Not only document management Everything related to node could be implemented Node type Flows, Web Forms and many other things extendable XSD + XSLT (other templating language) = XML, HTML, JS, Java, JSF – anything Web scripting The same model as Epam CMS It is possible to have XSD describing layout Крым, Симферополь, Детский джазовый концерт


Слайд 20

JazzTeam.org Springsite.com Eclipse Foundation 21/43 Texo Eclipse project presentation By springsite.com


Слайд 21

JazzTeam.org Springsite.com Eclipse Foundation 22/43 Texo Eclipse project presentation


Слайд 22

JazzTeam.org Springsite.com Eclipse Foundation 23/43 Seam JSF Creator of Hibernate Contexts Interceptors without AoP Built in IoC Rather new community Sometimes it is hard to debug and investigate what is wrong Good community State of art (contexts)


Слайд 23

JazzTeam.org Springsite.com Eclipse Foundation 24/43 Seam xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.xsd http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.1.xsd http://jboss.com/products/seam/transaction http://jboss.com/products/seam/transaction-2.1.xsd http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd http://jboss.com/products/seam/international http://jboss.com/products/seam/international-2.1.xsd http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-2.1.xsd http://jboss.com/products/seam/async http://jboss.com/products/seam/async-2.1.xsd">


Слайд 24

JazzTeam.org Springsite.com Eclipse Foundation 25/43 Seam <core:manager conversation-timeout="120000" concurrent-request-timeout="500" conversation-id-parameter="cid" /> <transaction:entity-transaction entity-manager="#{em}" /> <persistence:entity-manager-factory name="yageo" /> <persistence:managed-persistence-context name="em" auto-create="true" entity-manager-factory="#{yageo}" /> <core:init transaction-management-enabled="false" />


Слайд 25

JazzTeam.org Springsite.com Eclipse Foundation 26/43 XForms & chiba Server and client model XML XSD description of structured form (even recursive – if your framework supports it ?) http://en.wikipedia.org/wiki/XForms Not only for internet Could be MVC From http://www.w3.org/MarkUp/Forms/


Слайд 26

JazzTeam.org Springsite.com Eclipse Foundation 27/43 XForms & chiba <xs:complexType abstract="true" name="PublicationType"><xs:sequence> <xs:element name="Title" type="xs:string"/> <xs:element maxOccurs="unbounded" minOccurs="0" name="Author" type="xs:string"/> </xs:sequence> </xs:complexType> <xf:instance id="instance_0"> <yageo:Catalogue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:yageo="http://www.yageocom/cms/article"> <yageo:Publication xsi:nil="true" xsi:type="BookType"> <yageo:Title/> <yageo:Author alf:prototype="true"/> <yageo:ISBN/> <yageo:Publisher/> </yageo:Publication> </yageo:Catalogue> </xf:instance> <xf:bind id="bind_0" xf:maxOccurs="1" xf:minOccurs="1" xf:nodeset="/yageo:Catalogue" xf:readonly="false()" xf:required="false()"> <xf:group id="alfresco-xforms-root-group" xf:appearance="full"> <xf:label id="label_0">Catalogue</xf:label> <xf:group id="group_1" xf:appearance="repeated"> <xf:trigger id="repeat_1-delete" xf:bind="bind_5"> <xf:label id="label_25">delete selected</xf:label> <xf:action id="C56"> <xf:delete id="delete_1" xf:at="xf:index('repeat_1')" xf:nodeset="/yageo:Catalogue/yageo:Publication [index('repeat_0')]/yageo:Author"/>


Слайд 27

JazzTeam.org Springsite.com Eclipse Foundation 28/43 02 a little bit jump into project В Крыму


Слайд 28

JazzTeam.org Springsite.com Eclipse Foundation 29/43 Alfresco based TDD layouts flow XSD Layout content block ECore Texo POJO Java Texo meta Html design divs Templates Xslt/freemarket Alfresco web forms User xml Seam JSF ResourceBundle, Configs, Even web.xml Restart publish etc


Слайд 29

JazzTeam.org Springsite.com Eclipse Foundation 30/43 Texo based TDD flow XSD Java POJO EMF ECore Java Texo meta model Java Texo Core Templates ORM UI: JS jQuery widget has access to all


Слайд 30

JazzTeam.org Springsite.com Eclipse Foundation 31/43 Layouts flow Content block позволяют рассматривать новый функционал как UI плагины (виджеты). Автоматически поддержка CMS.


Слайд 31

JazzTeam.org Springsite.com Eclipse Foundation 32/43 Project data exchange


Слайд 32

JazzTeam.org Springsite.com Eclipse Foundation 33/43 Open Source contribution results Eclipse Teneo (only ORM) > Texo One more Eclipse member Chiba changes contribution Tries to discuss XForms standard changes Seam forum participating Issue with contexts Alfresco changes Dramatic WCM AJAX, layout to manage renditions, others A wish to become commercial committer Contribution is sent but particularly ignored


Слайд 33

JazzTeam.org Springsite.com Eclipse Foundation 34/43 Типы кастомизаций IoC, reflexion через файлы настроек Скачать сырцы, что-то изменить, переподложить под сервер Сырцов нету (multivalent.sourceforge.net). Decompile, adjust, compile Два последних варинта рискованны, если продукт будет долго развиваться.


Слайд 34

JazzTeam.org Springsite.com Eclipse Foundation 35/43 Open Source model of project vertical model - OOP > reusable components > frameworks > open source > usage at next projects Motivation Convenient way to touch with partners Ask them to join your OS project and see what happens All that is done for free in minutes, and results in a week (productivity etc)


Слайд 35

JazzTeam.org Springsite.com Eclipse Foundation 36/43 Open Source cons (то, что всплыло на проекте) Weak communities Not always user centric development Смешение технологий – for handy people Нет успокоения (но и нет старпёрства) Customizations, customizations, customizations Effort on R&D Из интерьера знаменитой 49 квартиры


Слайд 36

JazzTeam.org Springsite.com Eclipse Foundation 37/43 Money? Become committer with potential customer Long investments Create popular industry/direction (что сейчас делается в проекте Texo) Конференции, где бывают заказчики мира Java Open Source Independent consulting Name A way to start cooperation with people immediately For eclipse – not one month of contribution For sourceforge etc. Create user Add to project Develop Use Case Способный customer facer Могу дать телефон


Слайд 37

JazzTeam.org Springsite.com Eclipse Foundation 38/43 CMS Good to have XSD support And recursion Good to become an entry point for all the management/admin pages Good to be node specific Good to have web scripting finally flows And convenient management of renditions E-CMS integration should allow to do (web.xml, configs, bundles, localization) in the way you use wordpress


Слайд 38

JazzTeam.org Springsite.com Eclipse Foundation 39/43 Bonus 00: j2ee vs ruby (basing on mashpit trainings) Context handling Много времени для вхождения новичкам Хостинг дешевеет, clouding Java is up to have closures Byte code manipulators Aop, IoC, OSGI Simple syntax Proved technology MVC frameworks: spring, struts, seam. Tons of views, TDD ORM and JPA Ant, Maven Good to have compilation errors Стенсил во Львове


Слайд 39

JazzTeam.org Springsite.com Eclipse Foundation 40/43 Bonus 01: расширяемое программирование in Java Пляшем от полиморфизма Generics IoC(spring, self-made, seam, web.xml, context.xml) Dependency injection (interceptors, chains), AoP (joints) Patterns Plugins (self made, OSGI, etc.) WS-* (service mix, equinox, wsdl, JSON, REST) Bytes manipulation (create classes on the flight, interception on the flight – hard to debug) Polymorphic systems (ruby frontend – java backend) Class loading art UI: widgets, web scripting MDD, TDD, CMS took important role Built in scripting


Слайд 40

JazzTeam.org Springsite.com Eclipse Foundation 41/43 Выше показан один из возможных вариантов развития проекта и команды. Нет единого рецепта. Балкончик без лесенки Open Source company? Product based company? Outsourcing? Trainings? I do not know ?


Слайд 41

JazzTeam.org Springsite.com Eclipse Foundation 42/43 Спасибо! Надеюсь, было интересно и полезно! Вопросы? Презентацию можно найти здесь jazzteam.org/devcamp10 Zmicer.harachka@gmail.com Zmicer.com


Слайд 42

JazzTeam.org Springsite.com Eclipse Foundation 43/43 Opportunities Вы желаете обучаться или работать на java Участвовать в Open Source Вам нравятся небольшие Scrum команды Вы думаете об удалённой работе Хотелось бы поработать за границей, но не знаете как Тренинг повышения эффективности Java программиста Java Brains Reloading Давайте пообщаемся после презентации!


×

HTML:





Ссылка: