 Hello everyone, like Angelina said I'm my name is Alexander Andreevich I'm coming from Belgrade, Serbia But I'm originally from town of Nish that you most I think you heard of it's our part of Serbia I'm Primarily a backend developer I'm seriously working at a company called folk mapping in Belgrade We are an company that is based from Copenhagen and we have offices in Belgrade and recently in Berlin Like I said, I'm primarily backend developer, but I'm also Thinking about going full stack With front-end and I'm taking also interesting to mobile applications. So I Worked with I'm working with war press for almost three years and I work with other war press developers Teams plugins writing projects Inherited from from other companies from clients and I saw there are different organization rules and structures of how projects are handled and From most of what I saw They're just like too complicated for me I am always striving towards simplicity if in everything that I'm doing in personal professional life and I came up with some organizational structures with how should I run war press progress at least from my side and If you like them what you're going to see right now, maybe you will adopt them too So But before we begin, I know that most of the developers were giving attack Like to ask the audience on the start like How much of you are using this technology? How much using that technology? How much you into work press even? I Don't want to do that now because I presuming since you are here That you either using war press on your daily level or you're planning to give it a try Seeing you this in this number I know that there are many of you from both sides and that makes me very happy with Every project workflow we usually start by the project idea or pitch for some project so For a company if you are a company or a developer You are send requests or you find work or whatever so for some project and then You find out you need to find out some basic information about the clients that you are doing that you're doing for and by Working on more and more projects You'll find out that if you have worked on similar projects for companies that have like similar business or Some other agenda You will find out that more in time-time you will be a better in understanding What exactly the client needs and you will be better prepared the next time when you're like given project that is similar in business for for that one, so It's always a good idea to research What exactly the business is all about the client that you're building a website after the project or has been approved The team that's behind like a functional specification team or something is can do a basic UX of site or mock-ups wireframes and after that, it's basically a Transfer to the designer to make design based on that So it depends on how much time do you have? some of some of developers or Those who are doing the functional specification or mock-ups or designers go straight to the design ignoring completely the UX part of mock-ups that site I strongly recommend If you have time to do a basic UX for any project you are doing not just for press Because it will help you better to understand the all the functionalities and the site components that Will exist on on more press side that you are building and it will help developers That you are handling the project The project for UX to better understand Which what that components should actually do so? That's that's very very very important for them and it will Why not exactly the term it will It will be given less time to problems afterwards that may arise because of the bed bed specification and Of course after that there is a design. There's no much to said there and After the design has been approved there basically start with development and Development usually starts with front-end part so you're basically one to write front-end and then you start and you're doing that by Coding directly in team files But soon you find problems and hit the wall with like quality assurance team Project management or even clients that usually like test things even before they are not even complete so how to overcome how to overcome this you can do this by Coding all of your pages from U.E. That is that is approved Like static pages like static hot ML the way you call it is irrelevant You call it like hot ML or you use some templating engine. It doesn't matter But once you code it you send that to a proven to the quality assurance Designer and even even a client and once that is approved You have a clean code that you can then transfer to eventual back-end implementation So that's also reducing time needed for additional testing or whatever Of course testing will always be needed, but it will it will reduce time for that And of course there are like testing that can be tester client and even maybe audience feedback depends on the project You're doing the client may evolve potential audience in that After the audience head after the Testing has been Received feedback. There's of course more development because there we go is always going to be some bugs changing requests Some something else, but that's all the development process Once you're done with that Then it's time to put the project on life And after that if it's all okay, you will start Fortunately project care program client like solving bugs new requests Administration of that project etc. Etc. If clients of course wants to give you green light green light to that so when you basically start projects by Things you see that there is in UX and UI you usually started by choosing team for for WordPress and There you have three variants a team So you have you can get a free team either from WordPress repository or some other resources you can get paid Commercial team or you can call it from scratch or a custom team all three variants have some pros and scones In choosing them. So for example a free team base process just it's free easy maintenance and Usually is if from WordPress repository. It's reviewed by WordPress community team by team you review team But cons There is little lack no support for for free teams you can get like paid support lack of customer functionalities because most of the teams are a light on lighting functionalities and Updates are not regular over time and trust me on this. They're not So for paid team, of course you get support new updates regular and it's developed by professional company or Individual so there's a basically prompts pros for that cons customer functionality not always on time because the developer or company that is behind that team is Sometimes Waiting for more audience feedback or more requests to actually implement something to team and give it to the all of their customers so that That maybe shouldn't took some time If that team is you is using some kind of framework or some kind of Custom fragrance you don't know anything about and you want to change something you need time to learn those things if you're choosing like different team over time and you haven't worked with that before and Sometimes it's too much code just in team things that you don't need so I Don't say that this slowing down may be a team But it's definitely one of the one of the cons for chasing And of course you can build a custom team So pros for that you can just write what you want less code the using of course you can Use it on multiple places. It's more adaptive and You can of course reuse a code that you write because you know that you write that code and you know the best from from other people Cons for choosing Custom custom team is usually a little time Invested in your review because if you're not planning to sell that team to other clients, but you're calling custom for one client There is Little little time invested in quality assurance Basically on that on that code because it's just for that client is not going to go for for other for others And of course some things you you must write from scratch because it's custom teams So either you've write them or find some functionalities on Internet or read through WordPress documentation and of course after choosing team you are all eager to install some plugins and By what's exactly that site is going to interact and do You choose some plugins you find it even like commercial ones or free on the WordPress repository Etc. Etc. But There are some plugins that Will help you on your daily level Like you see here and you're probably most familiar With all of them, but we're just going to mention. They are not to must have But they will they will help you help you a lot to Overcome some problems if you hit if you hit the ball and first of all, I want to say about the jetpack Now I see that I work on many many WordPress projects But like I said the like I saw it, sorry Maybe on on from I don't know hundred projects. I saw like on five places the people using jetpack And I don't know if people don't exactly know what the jet packs exactly do But here's some things. So with the jet packs you can win a free version get website stats. You got CDN Basic brute force attacks protection to a factor education Related post sharing buttons for social media. All that is included in jetpack by free. So You don't need any any other functionalities to like install special plugins or something else You can all that finding in jetpack. So give it a try Of course, there's a Advanced custom fields. I think most of us have has used it over the times I use it on the day on the day level and it just like Super super super plug-in that is used for adding Metaboxes with easiness Regenerate thumbnails, of course, if you are adding new image sizes, you need to Regenerate thumbnails over over time your cell for basic cell optimization sites and better total cash or any other cash plug-in light for for caching pages assets and etc. etc. and Of course, you will find out that developer you don't ever cost need Development environments or staging environments or production when it's where you want to put your website So those basically are these three environments that you're going to use on their level There are some recommendations that like to mention why What things you can try to make your life easier and time less for for developing on These different environments. So for local development development environment Try Vagrant or Docker. They're basically Vagrant is a virtual machine Docker is a little different. It's a development environment for for for projects and You are sure that all other development Developers in team will have the same development environment You just you just pass it To other to other developers and they have like virtual machines. They don't have to worry about Why this is not working on like for example a patch version. This old PHP version this they'll have same arrangements and it will make debugging debugging of things less Let's worry staging environment now This is maybe wrong, but I like do it Recommend As some rule I stick that it is it's going to be on the same server that Is production environment also? Why is that? because primarily in the matter of speed So the client if you're revealing some new functionality Will and the client is complaining. Oh, like this functionality is much much faster on Production than staging because like staging is another server if you have on the same server staging and production environment then The speed is the same the server resources are the same. So the client can't complain about that production environment I recommend to you choose manage WordPress instance by costing components, but Only if you're sure that they are good and you will not need anything beyond that So do a research if you're not using any like Caustic operand that do a managed WordPress handling services Do a research and we're a views on which company you should choose If it's a project that it's not going to be Handled by managed manage the WordPress WordPress company that is doing but from the like you want to start it on a separate VPS or System I started to that is a new that is a new server I asked some professional company or minister to do it for you if you don't have experience in it Developers usually things that they can set up this Servers to be like 100 performance ready on server side for not just Applicable not just WordPress projects, but for any any projects and trust me they are not I know that I cannot set up server as good as some System system on a professional system under so my recommendation is to either hire a company or someone to do it to do it for you and then we are when we are ready with our Server insurductor there of course we instance of our press project Installation is a breeze. It's a famous five five minute installation either on non-virtual machine and and There are some couple of things you should consider after your immediately installing the WordPress or sorry While installing WordPress like for example changes the fault Repeat table slack. It's never too early for security and one things that Huckers are only into about it's like Okay, I'm having the WordPress database and I know exactly what are the prefixes for that database Change them and beat them in their game HTTP password protection for staging site now why this is important You will avoid duplicate content and that's CEO from crawler websites because you will have content on Staging instance for example the client has like enter content here and then you even site Please put in production you need to transfer it to life, but it just hanging there so Protect your site by HTTP not just for content, but for security measures and web crawlers will not index Not index your site or you can use option of our press to disable indexing for staging and Protect VP admin area Either by HTTP protection or some rewrite route. It's basically all in the mother of security so the mother software development Can be quite imagined with some type of subversion control and you and you as a Developer will probably will probably use it when you're doing WordPress projects so there are some Recommendations on how exactly should you not just in WordPress projects, but in any other projects that for for a development Which type of branches either if you're using like Git or CV me What branches should you keep like basic branches for that development? So you like have a master branch when all all that's code is developed you have like for example staging when Something is done on master. You will transfer it to staging branch And if it is approved, then you transfer it to production That's one way to do that work flow the other way is to ignore completely like staging branch Because I don't know there is maybe no need If something is a master branch There is certainly 100% is going to finish on staging So for staging you can also use master branch and for production You you of course use the production branch. Whatever you choose the choice the choice isn't you and There is one thing that they saw in many many WordPress projects that have some subversion control is that People think that it is a good idea to keep all WordPress files in in subversion Please don't do that. So There is actually No need to do that Whatever you're changing like In team or plug in it will kept there There is nothing there's nothing to change outside of those diratorist except maybe a plot, but that is on On file sites so that in files that are uploaded So just just ignore it's on git or seven You keep just team or custom plug-in if if you build one So if you're choosing like custom team for your projects, there's some things you may consider before before going To write it from scratch you're probably so eager to write to write it like yeah, I'm writing custom team but before that Check some baller baller plays maybe That's our like best practices for For writing team and underscores underscores that me is like super Super for that. It's managed by many many people that make sure That that that that team is with WordPress codec coding standard standards Of course team should be only used for reading and visualization of that anything you need to like For any crude operations creating reading or relating data should be handled by a custom plug-in or Any any other plug-in you choose Only use what you need in team. It's much easier to add some functionality Then clean that you need then clean those that you don't JSS assets static images Fires in general For both develop and the production just define it you can define it if VP config for example that file is Created on a word for instance. It's not going to be Transfer like on the git when you do the plummet should not be changed and you can like define in the way to conflict this instance is using This set set of assets and that is in cities set up to say you can use it Like in when you if you're building with the galt for example, you can define there the choice the choice is yours If you're doing coding in team code with option for the VP debug Set to true it will let you know your mistakes early so you can fix them On time and it will make you a better developer to know exactly what what you're doing Choose some team options class It's easy pretty easy to add team options. And if you don't have another share one with you If you're needing building custom plug-in, of course Before thinking about building custom plug-in chooses amongst like like 53,000 plus Surrounded that they're in warpers episode or maybe they're more I'm I'm not quite sure when I made presentation. There was like 52,000 plus to see if there is someone that will fix your needs for For solution you're working on If you can't find a one, but there is one with slight modification will do the job for you fork it and modify it Either of fires or by extended to hooks, of course if the Plug-in lies license allows you but most plugins and on the warpress repository allows it If neither writing from scratch Looks first of some boiler plates. I use for example, then Vincent for plus plug-in baller print for about Two years and it's super awesome easy to learn with best practices writing plug-in So I recommend if you're need and writing custom plug-in should look into that Of course, you can also look at some other popular popular plugins for best practices to see how they're Implemented stuff and of course stick close it to overpress codex in team assets When bundling them you can use Tools you're most familiar with this one like gop webpack or even It will make it will make handling assets much much easier then one Think about where the whether that why they're not minified Etc. Etc. For example GS or SS Some recommendation of course is that static images that you're using in your team or a plug-in should be compressed You can use tools like Google page speed insights To download the compressed versions of those images. Not that's the Google speeds pages insights is going to fix all your problems the problems with speed are definitely you need to look that Either on server or team or plug-in or database so, but it's a it's a good tool for for combining like minified minified version of assets if you don't use bundling for example Of course custom JavaScript test as fast should be always minified in production And we always say I have separate versions for development and production use consternation minified version Etc. And of course always load I seen many many times that people are still adding JavaScript and test as even images through like Normally how they'll do it in the HTML or parapet or PHP Use functions for for loading them default default for press functions. You can see here and Once your project is of course given a green light put in deployment There's a couple of things you should also do prepare your server or I'm repeating once again. If you're not sure how go with managed one For sites that may handle bigger traffic or you may consider VPS server dedicated cloud or whatever Handled by a professional system administrators Of course, you will install fresh copy of our press a new server you set up version control if you if you need one if not you will transfer Your team and eventually custom plugins manually by plotting them to a fd fdp And this is why it's important to not to keep Anything besides the WordPress team that you are using and the custom plugins on version control You are always assured that any development you have done on your local computer state in whatever You are always sure that you need transfer only plug-in Custom plug-in directory of or press team To the server nothing else and that you make sure that you don't forget anything anything except maybe Uploads Directory that maybe client added in staging or something like that like Right in here transfer event of positive if I need to applaud the directory And after that you need to migrate your development database to production Make changes regarding site early and other parts in that the base you've done or You can just use some of some of those So there is like plug-in the duplicator with me great they be on one of my my vibration give it to try I personally use The one in the middle VP me great DB It's awesome and it's finished jobs like this and after lunch of the site you've caused going to be doing backup and maintenance and The best advice is someone given to me about WordPress But I forgot who and I feel even remember I'm going to buy a beer It's to keep it updated So they're like So many people working on WordPress core making sure that with all new versions There are less bugs more fixes etc. Saturas, so please keep it updated Keep of course plug-ins teams and translations also dated Make sure that your Server hardware is scalable according to your web visits and server usage if needed You will if like in some VPS you will have to increase it over time Track logs for arrows Does attack pattern it's brute force attacks etc. Etc. And it will It let you know what? What things you should need you need to done to protect your WordPress instance Optimize your database for weather performance better said optimize your database server for that for better performance Keep track of no working links for four pages of course to see why they are not working and why there is not content on them Regenerative in sizes over time if new size are added and The last thing is of course backup, which I also saw in many projects. They're like no backup mechanism There's like no service site backup. No like I was a services Plug-in for a backup. That's also, please backup is a golden thing when when it's done Not just for WordPress, but any kind any kind of project and There's a I can then emphasize enough about security that you need to care about your site it's not not good things when like it happens your site got hacked or something like that and But you think about all my better bet invest a little more in security to protect it it's not a great thing either for you either for a client to see that such site got hacked and Sometimes I'm annoyed But someone who has said that even if you take in all the security measures Like knowing why my site is 100% protect from all the tax I'm just remembering Remember the line from this guy his name is Damian Scott and if you're a little into TV shows you might find him familiar and The high line that said like in my experience Nothing is impenetrable So the next time you get annoyed by someone who said that they're protected their site 100% just use this and You're probably asking why the title of this lecture is called handling WordPress projects begin to infinity If you are a little inexperienced and all just starting like as a developer or something You will probably start worrying over time that you're not going to finish things things on time I'm under pressure by bosses by clients, etc, etc But don't don't take it don't take it hard by time by working with more and more projects you will find out that you will be better in your job and that's by making experience experience is a great thing and Over time you will start start less to worry and Start more to care about what you're doing and if you're caring about some project That's like you're into care project for some client and Like if you even build that project and the client said all these guys or you're you're great. Let's let's continue our Development agreement with care you will find out that you're going to like it eventually and In the end when start caring about something That you made built it will start to enjoy It even if it's a war press project anything else so I'm saying no to Infinity worrying I say yes to infinity enjoy on Working with war press or any other project you can find this presentation Here if you like or I can I can send it to you kids And that's it