Meeting 1 - HridoyAlam/CSE327projectE-Comercesite GitHub Wiki
Meeting-1 Agenda
Date/Location: 08-August-2020 at 10:30 PM on Slack
Information Updates/Reminders
=============================
- The next 6-8 weeks, we are going to work on an e-commerce web-application (EasyBuy).
- Everyone should be able to use git, Github wiki’s, Trello, Slack.
- Everyone should research what programming language we should use.
- Everyone needs to gather information about which framework the team will use and what architectural pattern to follow.
Decisions Needed
================
- Decision about the programming language that the team will use in the project.
- Decision about the frameworks (for implementation purposes) that the team will use in the project.
- Decision about task allocation. Which members of the team will decide the coding standard and documentation tools.
General Items
=============
- Need a Trello board created for this project and team. Actions and other details will be posted there. Columns used need to be decided. Someone needs to create and invite other team members.
- Need a workspace in Slack project to track the time the team uses. Someone needs to create and invite team members (using email addresses). We need to decide when to create channels (related to topics) in the workplace and need to do all communications there.
- Need a GitHub account for this project. One team member will create a repo in Github and invite the rest of the team members.
- Need GitHub wiki pages to document project details.
- Allocate one/two team members to check coding standards. They should come up with at-least 2 coding standards.
- Allocate one/two team members to check documentation tool(s). They should come up with at-least 1/2 tools (with a brief summary of the usage, advantages, and disadvantages) for source code-level documentation.
Meeting-1 Minutes
Date/Location: 08-August-2020 at 10:30 PM on Slack
Attendees: Raisa Mehjabin Azni (RM), Jahidul Alam (JA), MD.Mohaimenur (MM)
Start Time: 10:31 PM
End Time: 11:09 PM
Decisions
=========
- The programming language that is going to be used in this project is Python.
- The framework that will be followed is the Django framework.
- The architectural pattern that will be followed in this project is MVC (Model-View-Controller) architectural pattern.
- MM will decide on the coding standard to follow in this project. Come-up with at least 2 coding standards.
- RM, JA will decide on the documentation tool to use for source code documentation purposes. Research on at least 2 documentation tools.
Actions
=======
- Decide the coding standard to maintain in this project. Select at least 2 coding standards that everyone can follow.
- Decide which documentation tool to use. Come-up with at least 2 documentation tools. Give a brief description of its usage and advantages.
Action | Allocated team members | Deadline |
---|---|---|
Action-1 | MM | 11/08/20 |
Action-2 | RM, JA | 25/08/20 |
Meeting-1 Decisions
Coding Standard
Purpose
Our goal is to create uniform coding guidelines among programmers so that programs can easier to read, check, and maintain. It helps different persons to easily understand the code scenario. When a project adheres to common standards many good things happen:
-
New people can easily understand the code standard and speed up there code quickly.
-
New programmers make fewer mistakes in inconsistent environments.
-
Maintain is very easy for every new programmer.
There are many coding standards format exist but now we are discussing some of them here.
1. Naming Convention:
The most important consideration in naming a variable, constant is that totally explains the exact meaning that the structure tells. Clean and meaningful names make the code more readable and minimizes the complexity and less amount of comments needed. Naming Convention is any type. We discuss some of them which are easy to follow and every programmer familiar with it.
- Camel Casing:
In this case, the programmer can declare their variable names with this style.
Example: Normal style is (int usernumber), Pascal Casing is (int userNumber) The first letter of the first word is lower case, and the first letter of the second word is upper case.
- Snake casing:
Snake case (stylized as snake_case) refers to the style of writing in which each space is replaced by an underscore (_) character and the first letter of each word written in lowercase. It is a commonly used naming convention in computing, for example for variable and subroutine names, and for filenames.
Example,
user_login_count
Every word will be in lower case and separated by an underscore.
- Naming Constants:
In this convention constants and functions shall be nouns, with or without modifiers.
Example: Line, InputLine, NumInputLines Constants variable name should be Capitalized: MAX_LINES(it's easy to understand that this is not changed)
- Use of prefix of a data variable:
This naming convention is widely used in C and Visual Basic language. If used, prefixes can vary from language to language and across applications. A list of the prefixes should be defined as part of the project-specific standard.
Example: char *apchFileSpec[10]. And that tells us a lot more about the variable than a simple name FileSpec.
2. Indentation:
Proper and consistent indentation is important in producing easy to read and maintainable programs.
-
Emphasize the body of a control statement such as a loop or select statement
-
The body of a conditional statement
-
new scope block
A minimum of 3 spaces shall be used to indent. Generally, indenting by three or four spaces is considered to be adequate. Once the programmer chooses the number of spaces to indent by, then it is important that this indentation amount be consistently applied throughout the program. Tabs shall not be used for indentation purposes.
Example:
`for ( int i = 0 ; i < number_of_employees ; ++i )
{
total_wages += employee [ i ] . wages ;
}
{
System.out.println ( “VIN: “ + in ) ;
System.out.println ( “Make: “ + make ) ;
System.out.println ( “Model: “ + model ) ;
System.out.println ( “Year: “ + year ) ;
}`
Inline Comments:
Inline comments explaining the functioning of the subroutine or key aspects of the algorithm shall be frequently used. Its help us to understand the line or understand the specific function works.
Example: while (!$done) { // We don't want an infinite loop here. $done = true; }
Use of Braces:
In some languages, braces are used to delimit the bodies of conditional statements, control constructs, and blocks of scope. Programmers shall use either of the following bracing styles:
for (int j = 0 ; j < max_iterations ; ++j) { /* Some work is done here. */ }
or the Kernighan and Ritchie style:
for ( int j = 0 ; j < max_iterations ; ++j ) { /* Some work is done here. */ }
Spacing:
The proper use of spaces within a line of code can enhance readability. Good rules of thumb are as follows:
- A keyword followed by a parenthesis should be separated by a space.
- A blank space should appear after each comma in an argument list.
- All binary operators except “.” should be separated from their operands by spaces. Blank spaces should never separate unary operators such as unary minus, increment (“++”), and decrement (“—“) from their operands.
- Casts should be made followed by a blank space.
Example:
Bad:
cost=price+(price*sales_tax); fprintf(stdout ,“The total cost is %5.2f\n”,cost);
Better:
cost = price + ( price * sales_tax );
fprintf (stdout, “The total cost is %5.2f\n”, cost) ;