How a typical software company works and how a CSE student should prepare herself for the industry. Focus in this deck is given on web application development.
12. Right tool for the job
• Ruby on rails
• MVC
• ActiveRecord
• PHP
• Laravel
• YII
• Zend
• Symfony
• ASP.NET
• WordPress, Drupal
13. Coding Standard
Code is written for?
• Not for machines
• But for other developers
• And your future self :)
Purpose of maintaining standards
• Clean code
• No surprises!!
• Meaningful, self-documenting code
• Prevent duplicate code
• Remove complexity
• Consistency
14. Code Collaboration
3 important things in programming
Version control
Common platform to share code
Code collaboration
Actually sharing code and knowledge with others
Learning from and teaching others
Creativity
Coming up with solutions
15. Code Collaboration
Pick a VCS
Git is an excellent choice
Learn it inside out
Either use the IDE or terminal
Pick a good workflow
Doesn’t matter what it is as long as you stick to it
Learn about branching
Specify what branch is for what purpose
Ensure everyone knows how to properly merge and rebase branches
Document your code as well as your workflow
MVC is just one way of doing it. Similarly there’s multiple solutions to the same problem, like ORM has ActiveRecord and DataMapper. MVC has MVP, MVVM, MOVE, HMVC, etc. But at the end of the day we have to analyze the problem and decide what’s the best tool for the job.
Rails 2.0, Rails 3.2, Rails 4.1
Symfony
MVC
DataMapper
Event Dispatcher
WP, Drupal, Modx
Visual Studio 2013, 2015 Database: MS sql 2008 r2 , 2014, Hosting: Azure , ORM:Entity framework 6, 7, ASP .net MVC 6-RC and 4
MVC is really vague
But in the end it doesn’t really matter
Good starting point
Definitely a good starting point in terms of organizing code
“Composite pattern” or “architecture”
Built up of a lot of little elements
Pure MVC vs pure SoC
Actually separating out code matters more than how you do it
Makes code predictable and easy to manage
New developers will know what to expect going in
Framework already laid out for what goes where
Can we swap right side. top one to bottom and bottom one to top.
At last mention about deployment tool - Capistrano.
Programmer think UI is not important for me, because love to code. :P
But ui is the key feature to run the business successfully
Yes! someone may do the ui for you, but when he will be busy with other project and you need to change a small thing. then you need to wait until he is free. Weird isnt it?
Can we make the UI super cool using HTML only? - NOPE
We need the help of CSS for make the site user friendly
We are lazy people, so why we will start coding from scratch?
We should use framework for faster development
Here are some framework we are using front end development
Bootstrap is the top html framework among these
We always want to spend our time efficiently. Don't you?
So we need to use some preprocessor for faster and manageable development of the UI
There are a lot of javascript library for faster development
jQuery is the one of them. And jquery and javascript is not different type :P. jquery library is a javascript library :)
Now I want to talk about Model View ViewModel framework.
So the most trending framework is angularjs
Vue.js will be the great framework near future
Worried about debugging?
we have some debugging tools in the browser
Here is the list of development tools we need to use for faster development
Add some slides for security testing, performance testing and regression testing
Describe alpha testing, beta testing, RC
Black Box Testing
Functional testing
Unit testing
Integration testing
Regression testing
Performance testing
Security Testing
Usability Testing
Compatibility Testing
Alpha Testing
Beta Testing
Automation Testing
White box testing
Add some slides for security testing, performance testing and regression testing
Describe alpha testing, beta testing, RC
Determine that an information system protects data and maintains functionality.
Check whether there is any information leakage.
Test the application whether it has unauthorized access and having the encoded security code.
Finding out all the potential loopholes and weaknesses of the system.
Add some slides for security testing, performance testing and regression testing
Describe alpha testing, beta testing, RC
Add some slides for security testing, performance testing and regression testing
Describe alpha testing, beta testing, RC
SQL Injection
Cross Site Scripting (XSS)
Session Hijacking
Cross-Site Request Forgery (CSRF)
Authentication
Authorization
netsparker, acunetix: cross site, csrf, sql injection,
wireshark: man of the middle
Add some slides for security testing, performance testing and regression testing
Describe alpha testing, beta testing, RC
100
101
data inserttion, 10 lak or 10 kot
time=> longibity
specific time
Add some slides for security testing, performance testing and regression testing
Describe alpha testing, beta testing, RC
Add some slides for security testing, performance testing and regression testing
Describe alpha testing, beta testing, RC
Add some slides for security testing, performance testing and regression testing
Describe alpha testing, beta testing, RC
Alpha testing performed by Testers who are usually internal employees of the organization.
Beta testing is performed at client location or end user of the product
Release candidate is the version of a program or software that is functional but not quite ready to be released to the consumer market.
A fresh developer is assigned with a tech team facilitator and a target technology to learn.
Learning is separated in 3 parts. Language, framework, test project.
The book of Ruby
Agile web development with Rails
Code schools
Learn Web Development with Rails (3rd Edition)
guides.rubyonrails.org
Build a small test project like twitter/simple blog/course registration system etc.
Add screenshot
Continuous learning is best thing to be skilled in software industry
You should have good knowledge on Design pattern and OOP