@fakiolinho
Full-stack JavaScript lover, happy husband, proud father 😉 - Head of Web & Frontend at @omilialtd
I am a truly passionate Full Stack JavaScript Architect, always ready to make smart ideas come true. I have been creating functional applications and attractive User Interfaces for the last 12 years with great success. I have professional experience with a bunch of frontend technologies such as AngularJS, EmberJS, PolymerJS, ReactJS and VueJS during all these years.
I 've followed all this craziness regarding frontend right from the very beginning back in 2012 so it isn't a lie that I really have some great understanding of these awesome frameworks/ libraries and the way we should use them in order to design and develop a modern javascript application.
If you ask me what are my go-to tools right now I 'd say ReactJS and VueJS but who knows where we 'll be in 1 or 2 years from now, right? JavaScript ecosystem never seems to stop evolving and this is something that describes me really well too. I suppose this I got stuck with JavaScript all these years.
Last but not least I am a happy husband and a proud father and these are definitely my most important accomplishments above this world 😉
Nothing here yet.
No blogs yet.
Yeah, good thing is i have long experience with 3 of them => Angular, ReactJS & Redux. In fact i have created a demo and works really well. Bad things are: i haven't made that kind of switch before so i feel it is a little challenging right now 😃 there are so many side-effects, circular dependencies etc in services, providers etc that i strongly believe this will be my biggest pain 🤕 i haven't written this app in fact i am playing around with its codebase for the last 10days or so that's why i am worried about unexpected issues down the road 🤔
I had the same dilemma one year ago when Angular 2 was in RC for such a long period and i went with ReactJS. Before this switch Angular 1.x was my go-to tool for almost 4 years. To be honest i played a little with Angular 2 and i could bind the pieces quite fast because of my previous experience but i found myself struggling with TypeScript most of the time instead of Angular 2 itself. Today with ReactJS i can use TypeScript or just Babel or Flow for typechecking or stick to its native PropTypes system for sth simpler or even skip all these in order to build sth really fast. I like this freedom and all this power in my hands. ReactJS is much much easier since it is just the view layer. Its learning curve is really short and you can build a prototype in a matter of hours even if you are a fresher. If you need to implement more advanced stuff like sending asynchronous requests you can use the 3rd party tool you prefer like axios, fetch, superagent or whatever. As i said above, i like this kind of flexibility a lot. I have used also Polymer for 6 months and i can tell that ReactJS is much closer to the Web Components concept despite the fact that it doesn't use Web Components technologies such as Shadow DOM etc With ReactJS we can build easily abstracted components with specific markup, logic and styling and reuse them at will. The more you use ReactJS the more you become a better JavaScript developer. This is the ultimate feature of ReactJS since you don't have to do react-ish things. I have used EmberJS for 1 year and i remember myself searching for hours in the docs to find what objects i should extend here and there even after 6 months. With ReactJS this is definitely not the case. You just have to use plain JS features and you will stay closer to JS evolution which is extremely rapid these days. For example you can use features which are still in early stages like properties initializer syntax in ES6 classes through Babel and this can benefit you a lot as a JS developer. I have also written an article about ReactJS here https://medium.com/@fakiolinho/12-reasons-why-reactjs-has-taken-over-the-world-3fbfbb0c7f52 where you can read even more and i think it might help you a lot. My advice is use the tool that is going to make you stronger and is going to serve you well. With ReactJS you 'll stay much closer to the bone and this is really important with all this frontend craziness around us. When you feel ready you can simply decide to make the next step and integrate Flow or TypeScript etc in your projects. ReactJS plays well with all of these extensions so sky is the limit. Thanks for reading.
I personally prefer using migrations and seeders and then reproduce project's DB with a single command or so. That way everyone is working with dummy data with same schema. Also by doing so even new members can get started and setup their development environment really fast. I 've seen people sharing real DB dumb files here and there or adding .sql files in the main repo. This is really bad and unsafe and doesn't ensure that this is the very latest accurate copy. Also by using migrations and seeders all this mechanism is controlled by git VCS so there is no need for sloppy copy / pasting. By sharing sql files here and there you cannot track history that accurately. Recently i heard about a company from a friend of mine where a developer had to do some DB work and uploaded accidentally an outdated .sql file from the repo to the real DB so they lost tons of real data that way. This file shouldn't exist in the first place.
Sharing DB files among team members is a bad sign and i have seen people losing their job by doing this because one day they destroyed part of the real DB. So please don't do this for your own good. I highly recommend to play with dummy data by using migrations and seeds . Also you can create a Docker container and provide a solid development environment for your team members. So with a couple of commands or a make file the whole environment can start, reset etc without having to share DB files with others.
Nice question. So i am a self-taught developer and all these awesome webpages out there helped me really a lot. There are so many treasures online so there is no excuse if we really want to evolve and thrive. When i started i couldn't afford paying some memberships so i was using only free ones like: stackoverflow.com sitepoint.com scotch.io reddit.com codecademy.com youtube.com After a couple of years i realized that i should invest more in my personal development / knowledge since i could afford it. In general i always say to myself how do you expect others to pay for your skills if you are not really determined to make them sharp? I did it and it paid me off by far. Some webpages i have active membership: egghead.io frontendmasters.com codeschool.com laracasts.com lynda.com (through my linkedin.com premium membership) So i have a studying pattern and every morning while drinking my 1st coffee and every night after i put my kids to bed i study at least 1 article or watch a couple of tutorials. I try a lot also to be an active member across some webpages that offer social networking. I found out that these webpages keep me updated for latest news and technologies and i can have real-time conversations with some gurus out there. These are: twitter.com github.com hashnode.com (obviously...) I remember myself sending a tweet wondering about ReactJS event handlers and stateless components because i have read almost everywhere that this kills performance. I always search for best practices and patterns so this was in my alert-list. Some minutes later Dan Abramov himself answered and clarified the whole thing: https://twitter.com/fakiolinho/status/799564858303909888 This is so cool right. Really fast learning!!! Sometimes i find myself searching for hours on github.com reading other people code and checking under the hood for best practices and patterns. Most of the times i prefer studying real code let's say about Redux for example than reading an article. Everything starts clicking in a matter of seconds by doing so and i don't have to do stupid memorization since i know exactly how it works this or that. Last but not least, i think the best way to learn something is to write a short article on your own and try to teach other people. There are awesome online platforms with great communities where you can share your ideas: hashnode.com medium.com You 'll be amazed how much this is going to benefit you. So that's it. Happy learning and thanks for reading!!!!