Relatively recently, a DrupalConf'2011 conference was held in Moscow, where I talked about tools for the novice Drupal developer.
I present to your attention a video where my entire half-hour speech, a presentation and a brief summary of what I said are filmed (I draw your attention to the fact that the summary may differ in some moments from my oral conversation in the direction of greater details).
I insert the video right away, it is uploaded to Yandex.Video, so most users should not have problems viewing it. Who saves traffic, go under the cat, there is only a presentation and a textual summary.
')
Now the actual
presentation on SlideShare (you can download) and numbered abstracts on slides.
Slide 1.
So, first I will outline the criteria by which I selected the tools. In the world several operating systems are widespread with relatively different popularity - Microsoft Windows, Apple MacOSX and GNU / Linux. Due to some circumstances, I have several jobs and I use each of these systems in my work. Therefore, one of the most important criteria for me to select programs is their cross-platform, i.e. ability to work and look the same in multiple operating systems.
It should be noted that I am not an ardent fanatic of any of this system. I feel equally comfortable in each of them. In this, the role was played by the fact that I try to make the most of the applications that run on all systems without problems. But for myself, I positioned that Microsoft Windows is for people who do not want to change their habits, the so-called conservatives. Apple MacOSX is for people who are tired of periodically reinstalling systems, frequent system glitches (in which, by the way, so-called iron factors, an incorrectly chosen configuration or incorrectly installed driver on a device are often to blame) - this is not the case with MacOXS, you get an almost ready and debugged computer , besides collected very high quality. For example, I decided to clean the iMac of my wife the other day, who had been standing in one place for more than 3 years - after opening the case, I found that there was practically no dust inside, except for a small coating on the fan blades standing above the processor.
Finally, GNU / Linux is for people who want to get as close as possible to the open source community (it's not a secret that Drupal is an open-source system), and also to develop in conditions close to reality. Most hosts use Linux as their primary server system. In my opinion, even a novice developer should have at least a superficial vision of what he is working with.
In conclusion of the holivarny theme, I recall that I spoke about the criteria for the choice of tools. In addition to cross-platform functionality, convenience and functionality, speed and technical requirements are also important for me. The last option is important because I use a netbook for mobile work.
Slide 2.
Based on the criteria voiced by me, let's see what can be discussed. The first is Geany. Everyone knows the editor notepad ++ and consider it very convenient. But unfortunately, it works natively only in Windows and under MacOSX and Linux it does not exist. Instead, I use the Geany editor, which in functionality is not inferior to notepad ++, but it works on both Windows and Linux, while expanding with plug-ins and has support for the syntax of many programming languages and scripts. The editor is quite lightweight and fast, although at the very beginning you will probably have to get used to its appearance. Perhaps he has no minuses, except for the fact that support for more or less developed work on projects is absent in principle and support for tools for team development is minimal.
Next, a novice developer can pay attention to two development environments, two monsters are Eclipse and NetBeans. Both IDE are very functional, convenient and have many advantages. The choice between them is ambiguous, but for comfortable work I like NetBeans more. Although if you work in a large team, you will most likely use Eclipse - all the same, support for team development tools in it is better implemented.
Perhaps there are only two things that confuse me in working with NetBeans, but they don’t interfere - the lack of support for workspaces as they are in Eclipse (workspace in a separate folder and selected at startup), as well as the inability to specify how to create line endings - in the style of Windows or in the style of Unix. As you know, the coding standard for Drupal states that it is preferable to use Unix-style endings. However, there will not be a fatal error in using endings of Windows-style strings. NetBeans looks at the beginning of the file and reproduces the style it finds in it. Those. if initially the file was with the endings in the style of Windows, then it will be all over the file. New files created in NetBeans will be created according to the operating system where it is currently running.
There are many more editors and IDEs who use PHP and Drupal developers in particular, but I don’t consider them for the reason that most of them are not cross-platform and some are paid.
Slide 3.
As you know, PHP scripts (Drupal is written in PHP for the most part) are executed on the server. Accordingly, it is important for the developer to select the software that will ensure the proper functioning of his projects. The most common is a set of Apache web server, MySQL database management system and PHP interpreter. There are other options for using the nginx web server or lighttpd, PostgresSQL DBMS and others, but they are much less common and, moreover, are not fully supported by modules under Drupal.
Any less experienced PHP / Drupal developer is familiar with the widespread build called Denwer. This is a minimalist set of Apache + MySQL + PHP, which is enough to install in the OS so that you can work with sites on Drupal. But you should know that this build only works on Windows, in my opinion is too simple and the developer often does not know how it works there inside it. Well, there were moments when, when running on Denwer, sites on Drupal did not work correctly, although the hoster had everything without problems. I mentioned this platform only to show its weaknesses.
For my projects, if I work with them locally, I use XAMPP - this build is more functional than Denwer, it has a much wider set of extension modules for Apache and PHP. Besides, it works faster and most importantly - on Windows, Linux and MacOSX. The only drawback is that its configuration for working with sites whose address is different from localhost is slightly more complicated than when using Denwer.
In order to completely understand the work of Apache + MySQL + PHP, you can independently install all the necessary components in turn; you can find a guide on how to configure them on the network. I want to mention in this light that Zend Server is an assembly from the very well-known company Zend Technologies. It is distributed in two versions - the free Community Edition and the paid version, which includes a couple of add-ons, including the script encryption / decryption module.
I will mention just in case to avoid the reproaches that under MacOSX there is an analogue of Denwer and it is called MAMP Pro. But it should be understood that the Pro version is paid, and the free version of MAMP is very limited in functionality.
Slide 4.
We looked at how a developer can work, now is the time to suggest some tools that will help the developer build the development process more correctly.
I particularly wanted to mention the version control system - this is Subversion, GIT, Mercurial, etc.
When using them, you can always come back and view the change history, regardless of whether you worked at this workplace or at another. And these systems will certainly be useful when several people work on the project.
For a novice developer, I would recommend paying attention primarily to GIT - firstly, this system does not require a separate server part, which means it is easier to use, secondly, it was chosen by the drupal.org team to work on the Drupal code and modules for it , which is also important if you want to make your project publicly available and get into the list of modules on drupal.org.
If your team has many developers, then most likely you will use Subversion, because of its centrality and prevalence, it is more controllable. By the way, one of the reports on this topic will be today.
And of course, as a Drupal developer you should be able to use and be sure to use modules for developers, at least this Devel and Coder. The Devel module will help you understand the bottlenecks on the site, and Coder will check your code, how well you wrote it correctly in terms of development standards.
For the convenience of working with sites on Drupal, I also strongly recommend that you explore the capabilities of the drush utility along with the drush make option, this will help you a lot. In particular, quite recently on the site drupal.ru it was told about how to use the drush to synchronize between each other the developer version and the working version of the site.
By the way, I tried to set up drush in Windows, and I even managed to do something, but it was quite nontrivial, unlike Linux.
Slide 5.
The final word is on the slide you can find links where you can read about some of the tools I listed and how to configure them for Drupal. I have not mentioned it before, but when setting up Eclipse or Netbeans, it is possible to add so-called code templates, i.e. already designed pieces of code that are inserted by typing a specific name and pressing a special key - in the end, you will be able to process the function hook declarations for Drupal much faster and more correctly.