Skip to content

Instantly share code, notes, and snippets.

@mdsaleemj
Last active February 25, 2017 17:55
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mdsaleemj/ee6116939029746af4fba1d74cd54f13 to your computer and use it in GitHub Desktop.
Save mdsaleemj/ee6116939029746af4fba1d74cd54f13 to your computer and use it in GitHub Desktop.
Software Development Priniciples

The purpose of this gist is to know more about the software developing principles in general. This intention is to explore and know more about software development from industry leaders like Martin Flowers, Robrt Martin(aka UncleBob ) and many .

In addition to that , learning and practising programming and desing skill with emphasis on necessary programming styles like OOP and FP needs to be encouraged.
This guide is started as rough draft and will serve to contain information about resources , leaders to follow, topics under software development.

##Software Development

###Database Concepts

  1. Understanding the concepts behind the database systems.
  2. Criteria for the perfect RDBMS - (ACID principles)
  3. Transactions concepts. Locks . Two phase commit . Read Concern.Write Concern. Database lock. Row/Document level lock.
  4. Concurrency control - How concurrent updates /read/writes are handled by the given database.
  5. Indexing Prinicples - Simple/Compound indexes. Size of indexs . Queries speed when update/insert operation. Limitation of indexes.
  6. Queries - Query features.
  7. Data modelling(schema design).- Knowing about different frequently used database schema patterns.
  8. MOST IMPORTANT Analyse and estimate the above database principle and see the how far the a given database itself fulfills it or application should do workaround the achieve/fulfill the principles(Eg : MongoDB provides application to the ability

###Queuing/Messaging Concepts

  1. Understanding the necessity of queuing system in the enterprise application.
  2. Basics of Queuing systems, tools.
  3. Different pattern of message queues.

###Binary Data Concepts ( parsing/handling binary data)

  1. Understand the concepts behind binary data. See how data is stored in bytes instead of strings (general)
  2. Understand byte ordering , packing/unpacking , fixed length/variable length data.
  3. Practice the concepts in javascript or any other relevant lang. https://hacks.mozilla.org/2017/01/typedarray-or-dataview-understanding-byte-order/?utm_source=javascriptweekly&utm_medium=email

###Authentication and Authorization

#####Authentication

#####Authorization

  1. Role Based Access Control - RBAC.
  2. How RBAC - can be used in web application.
  3. Multi Tenancy.
  4. Multi Tenacy vs RBAC.
  5. Typical use case for RBAC.

Tech leaders


Resources

  1. http://c2.com/cgi/wiki?HowToImproveProgrammingSkills - Programming skills
  2. http://c2.com/ - Good place to learn about object oriented concepts.
  3. http://butunclebob.com/
  4. http://kukuruku.co/hub/programming/do-not-learn-frameworks-learn-the-architecture
  5. http://braythwayt.com/2016/02/03/architectures-arent-frameworks.html

###Good books

Patterns of Enterprise Application Architecture - http://www.martinfowler.com/books/eaa.html

Enterprise Integration Patterns ,Designing, Building, and Deploying Messaging Solutions - http://martinfowler.com/books/eip.html

Design Patterns: Elements of Reusable Object-Oriented Software - https://www.amazon.ca/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612


###Tech Websites/blogs/magazine Hackers bit - https://hackerbits.com/ - HACKER BITS is the monthly magazine that gives you the hottest technology and startup stories straight from Hacker News.


###Object Oriented Concepts(Analysis-Design-Programming)

Suggested reading list for oops

  1. http://www.holub.com/goodies/books.html
  2. http://programmers.stackexchange.com/questions/143390/recommended-reading-for-object-oriented-application-design-architecture
  3. https://www.quora.com/What-are-good-books-to-learn-object-oriented-programming (post by Marcel Molina, Engineer at Twitter)
  4. http://www.slideshare.net/sudarsun/object-oriented-design

####Coding Patterns (Design/Architectural Pattern) https://en.wikipedia.org/wiki/Software_design_pattern https://en.wikipedia.org/wiki/Design_Patterns https://en.wikipedia.org/wiki/Architectural_pattern

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment