My first application• Ok I successfully build a chess game• Now I want to build checker or other board games.
My Next Applications• I am so lazy, but I have to handle some things again that I have handled in chess game before. Like, – Point Table – Player Switching – Board status – Pieces – Save, load, undo, redo etc….
DRY• If I implement them again it will be wastage of time.• Dont Repeat Yourself (DRY)• Reduce repetition of code of all kinds
DRY• I want to reuse code that I used before in chess game
DRY• The functions need to customize as it was written in chess game i have to change it so that it also work for checker.
DRY• Some times this changes are different because there are so many options and varieties of board games
DRY• If I write those functionalities in a sort of generalized way such that it can be used in all board games.• Then I can develop this games very fast without repeating myself.
DRY• Now I can separate the similar codes that I can reuse for these board games.• If I need to build checker then I need similar structure as chess game.
DRY• If there is a structure that has similar features for these games then I do not need to start from the beginning.• I can straight jump into game logic. logic
Frameworks• The structure that I built to use for all board games can be called framework.• A reusable set of libraries or classes for a software system.• Used to implement the standard structure of an application.
Few Frameworks• For web application – Symfony – Zend – CodeIgniter – CakePHP – .NET – Django• For desktop application – Qt C++ – WxWidget
• Here is an idea. I am a human why should I repeat another humans work.• I havent coded yet but I need not to because some one has already coded it for others to reuse.• There is no point to reinvent the wheel