Back-End Programming
Clients & Servers 的基本觀念
Client (你的裝置),log in 你的帳戶
在 Twitter 輸入文字按下推文,其實就在做 post request 的動作,跟 server 溝通,然後再傳回電腦,Client create content and data and posting it to Twitter's database, and server return it back to the browser
POST Data On Internet
以狀態列為例子
GET
你看到的資料
Create a get request, getting the data associated with my account and retrieve it to my browser
後端要擔心的
平台的轉移
記憶體
security
會不會有瓶頸(bottleneck)
log 問題
poke out from outside (適時的點醒)
Back-End Fact Sheet
What are the different types of backend programmers?
- Back-end programmers are differentiated by the languages and technology stacks they use. Back-end programmers can be generalists or they can specialize in areas like devops/infrastructure, internal tooling, api design, and database administration.
What are essential Back-End programming skills?
Software architecture- The ability to translate project requirements into technical specifications
Software deployment- The ability to make a software program ready and available for public use on the web.
What are the differences and similarities of Back-End programming languages?
一樣有很多程式語言可以完成後端工作
Different languages are typically associated with different stacks, although some components are interchangeable between stacks. For example Ruby is closely associated with the Rails framework and ActiveRecord Object Relational Mapping (ORM), while Python has several competing web frameworks and ORMs.
Why might a backend language be more suitable for certain projects?
Languages differ in how quickly a programmer can produce a working product but ease of development generally comes at the cost of performance and maintainability.
Languages like Java andGoare popular among large teams and large projects because they enforce code organization and structure.
Java 和 Go 在大專案和大的 Team 內很受歡迎,因為比較有結構
Languages like Python, Ruby and Javascript allow rapid development and easy prototyping but they don’t necessarily scale to heavy loads as easily. This implies cultural differences between the communities around different languages, and in the teams that use the different languages. Java in particular is used at larger enterprises. PHP tends to be seen in legacy applications.
What are the important concepts Back-End programmers need to know:
The concept of a stack: The ‘stack’ refers to the combination of technologies a developer uses to implement a particular project.
One of the first major stacks was the LAMP stack (Linux, Apache, MySQL, and PHP).
Over time more stacks have emerged that use different components. For example nginx is a popular alternative to Apache for the webserver component of the stack. There are many SQL and nonSQL alternatives to MySQL in use today, and there are even more choices of programming language and framework. Today the stack might also include the frontend technologies used by an application.
The concept of full stack: A programmer who is competent in everything from Front-End to Back-End programming including all elements of the stack.
跟前端的溝通:How to display this data
Storing or treating data
跟 Mobile App: How do I store client data in my mobile app
跟 Data analysts: How can I build a usable structure for this data
Ruby 和 Python 的小差異
案例: Build class for database that can store images