Web document markup
HTML (HyperText Markup Language) - This is the standard markup language of almost any web resource. It is the enclosing element that the user's browser renders. The HTML language contains a large number of tags, the most basic of which I talked about in the article How to make a website in Notepad. To master this language (at least to understand the elementary elements) is not a big deal.
CSS (Cascading Style Sheets) - CSS styles - a file (or several files), in the content of which there are styles applied to various HTML tags. CSS styles are inherently a technology that allows you to change the colors, sizes and positions of boxes, text, and any other HTML markup elements. In a nutshell: CSS is any "niceties" on a website.
Programming languages and databases
Modern sites and web applications have a large amount of different information that simply cannot be presented to the user in the proper form without using programming. The technology of programming languages in site building is mainly responsible for: the connection of the database with the final site, a convenient interface for editing data by the user (webmaster), complex forms, many different moving fragments
PHP. The php language can be briefly called a tool for developing personal web sites. This language is one of the most popular in creating websites and web applications and is supported by almost all hosting providers. Php runs on the server side.
MySQL database. As a rule, it stores all the text information that is displayed on your site: whether it be an article, a title, or a menu item.
Graphics and file system
Any modern browser supports many graphics formats. The most popular: jpg, png, gif, flash, as well as the ability to output vector graphics svg, canvas
Programs and tools - site development technologies
In the modern world, a large number of programs and tools have appeared that help create high-quality web resources. I will list only the most popular and necessary ones. Programs to simplify the technology of creating a website:
Dreamweaver is a handy program that allows you to quickly create sites.
- Photoshop - allows you to edit pictures and save them in web format.
- Figma - Figma helps teams create, test, and ship better designs from start to finish.
- Notepad ++ is a high-tech editor with code highlighting.
- Filezilla is an FTP client that allows you to upload / download documents to your hosting quickly and easily.
CMS (technology - content management system)
CMS is a content management system thanks to which you can launch a web project in minutes. Nowadays, CMS technology contains most of the necessary links, modules and plugins right out of the box. Whatever you want to do - an online store, a corporate website or a blog - as a rule, this is already implemented in some CMS. There are a great variety of them, both paid and free, for example, magento, prestashop, joomla, wordpres, etc.
Development on CMS is the most correct approach if the project is typical enough. That is, the CMS already has all the modules you need, and the processes that are built into the CMS almost completely meet your expectations.
Development on a framework
Development on a framework is the most correct approach if your vision of the project does not really fit into the capabilities and processes of the CMS on the market. That is, when, in the case of using a CMS, it will have to be significantly modified.
If we return to the above analogy, then "the production of building materials" is the lot of the few, "buying a ready-made house" is optimal for those who initially like these ready-made houses, and "building from ready-made materials" is best for those who want something special ... That is, it is irrational both to buy a ready-made house and disassemble it into building materials, and to collect from building materials what is already on the market ready-made.
Choosing a platform: CMS or framework?
Technically, any functionality can be implemented both on the CMS and on the framework. However, some projects are easier to do on a CMS, and some on a framework.
Basically, any site or web application can be developed using one of three approaches:
Take a boxed content management system and adapt it to the tasks.
Take a framework and implement the required functionality based on it.
Write a system from scratch using a pure programming language.
If we draw an analogy with building a house, then the approaches look like this:
You buy a ready-made house, and then you finish building / finishing it.
You buy bricks and planks and then start building on your own design.
You are looking for and developing a deposit of clay, making bricks from it, at the same time cutting down the forest to make boards ... I think you can not continue.
Development "from scratch" should be discarded immediately, since this approach can be correct only if the creation of a project is the main task of the company, and a lot of resources have been allocated for this task. Good projects "from scratch" take a very long time, although this approach allows you to create very serious solutions.
Basically, the choice should be made based on the economic component of the development. Below are some criteria to help you make an informed decision on this matter.
The functionality that is built into the CMS is more expensive and takes longer to implement on the framework, and the development of complex functionality on the CMS or rewriting the basic processes of the CMS is more expensive and takes longer than the same work performed immediately on the framework.
Achieving high speed from a complex project on a CMS is more expensive than doing it on a framework. The situation is similar with scaling. That is, with high requirements for resistance to loads, performance or fault tolerance, choose solutions based on frameworks (or include the cost of CMS optimization in the project budget).
Launching the first pilot (incomplete) version of a project on a CMS is always faster than launching a similar version on a framework. If the project is complex, and the launch deadline is "burning", then it is better either to release a "pilot" on a CMS, and then it is costly to refine it, or in parallel with this, develop a solution on a framework, or prioritize between the development time and the complexity of the project (or abandon complex functionality , or increase the terms).