Some concepts for SaaS

作者: 云中布衣   分类:  数据研究    热度: (680℃)   时间: 2016-1-11 12:14   标签: #国科大  #作业  #高级软件工程    

1.Agile Development & Scrum (1.3 and 10.1)

Agile development model is based on embracing change as a fact of life:developers should continuously refine a working but incomplete prototype until the customer is happy with result,with the customer offering feedback on each iteration.Agile emphasizes test-driven development(TDD) to reduce mistakes by writing the tests before writing the code,user stories to reach agreement and validate customer requirements,and velocity to measure project progress.

Scrum is a popular one of many ways to organize a two-pizza software development today.Its frequent short meeting---15 minutes every day at the same place and time---inspire the name,when each team member answers three questions:
1.What have you done since yesterday?
2.What are you planning to do today?
3.Are there any impediments or stumbling blocks?
Scrum uses the term sprint.A Scrum has three main roles:Team,Scrum Master,Product Owner.
Scrum relies on self-organization,and team members often rotate through different roles.

2.Plan-and-Document based Development(1.2)

Before starting to code,come up with a plan for the project,including extensive,detailed documentation of all phases of that plan.Progress is then measured against the plan.Changes to the project must be reflected in the documentation and possibly to the plan.

3.DRY(Don’t Repeat Yourself)(1.9)

Reuse is a productivity mechanism.It is to reuse portions from past designs rather than write everything from scratch.Note that reuse does not mean copying and pasting code so that you have similar code in many places.The problem with cutting and pasting code is that you may not change all the copies when fixing a bug or adding a feature. Here is a software engineering guideline that guards against repetition:

Every piece of knowledge must have a single, unambiguous,authoritative representation within a system.---Andy Hunt and Dave Thomas 1999.

This guideline has been captured in the motto and acronym:Don’t Repeat Yourself(DRY).

4.MVC SaaS(2.5)

In MVC SaaS apps, every user action that can be performed on a web page---clicking a link or button, submitting a fill-in form, or using drag-and-drop---is eventually handled by some controller action, which will consult the model(s) as needed to obtain information and generate a view in response.
The Model-View-Controller or MVC design pattern distinguishes modes that implement business logic, views that present information to user and allow the user to interact with the app, and controllers that mediate the interaction between views and models.

5.SMART User Story(7.1 and 7.2)

The BDD version of requirements is user stories,which describe how the application is expected to be used.(User stories,a device borrowed from the HCI community,make it easy for nontechnical stakeholders to help create requirements)
The format is:
Feature: name
As a [kind of stakeholders],
So that [I can achieve some goal],
I want to [do some task]

The SMART acronym captures the desirable features of a good user story:
Specific,Measurable,Achievable,Relevant,and Timeboxed.

6.TDD and Red-Green-Refactor(8.2 and 8.3)

TDD(Test-driven development) advocates the use of tests to drive the development of code.

1.Before you write any new code,write a test for one aspect of the behavior it should have.Since the code being tested doesn’t exist yet.writing the test forces you to think about how you wish the code would behave and interact with its collaborators if it did exist.We call this “exercising the code you wish you had”
2.Red step:Run the test,and verify that it fails because you haven’t yet implemented the code necessary to make it pass.
3.Green step:Write the simplest possible code that causes this test to pass without breaking any existing tests.
4.Refactor step:Look for opportunities to refactor either your code or your test---changing the code’s structure to eliminate redundancy,repetition,or other ugliness that may have arisen as a result of adding the new code.The tests ensure that your refactoring doesn’t introduce bugs.
5.Repeat until all behaviors necessary to pass a scenario step are complete.

7.FIRST principles for testing(detail in 8.2)

Good tests should be Fast, Independent, Repeatable, Self-checking, and Timely(FIRST)

8.Code smell & SOFA(9.5)

Code smells provide qualitative but specific descriptions of problems that make code hard to read.Depending on which catalog you use, over 60 specific code smells have been identified.The acronym SOFA names four desirable properties of a method:it should be Short, do One thing, have Few arguments, and maintain a single level of Abstraction.

9.SOLID principles for class architecture(11.1)

The SOLID design guidelines and some smells that may suggest your code violates one or more of them.
Single Responsibility
Liskov Substitution
Injection of Dependencies
Demeter Principle

10.Continuous Integration & Deployment(12.3)

Continuous Integration(CI) consists of running a set of integration tests prior to deployment that are usually more extensive than what a single developer would run on his own.CI relies heavily on automation.Workflows can be constructed that automatically trigger CI when commits are pushed to a specific repository or branch.
Continuous deployment(automatic deployment to productive when all CI tests pass) may result in several deployments per day, many of which include changes not visible to the customer that “build towards” a feature that will be unveiled at a Release milestone.

Sort Out By Wenyan Yu 2016.01.11



© 云中布衣 2015-2019 | Driven by EMLOG  | SiteMap | RunTime: 11.26ms&RSS  |   | TOP

文章数量【278】 评论数量【340】 稳定运行【1423天】

Visitor IP Address【】