Dieci giorni fa è terminato #FacileHack 2017, la seconda edizione dell’hackathon organizzato da Facile.it. Tenere un evento di questo genere ci ha permesso di vedere all’opera e di confrontarci con tanti team molto eterogenei, composti da programmatori, designer e specialisti del marketing.
Il tema dell’hackathon di quest’anno è stata la connettività: il nostro portale propone la comparazione dei servizi di connessione ad internet, e ha deciso di porre questo al centro della competizione. I diversi team si sono quindi affrontati su questo tema, per trovare modi per migliorare il business di Facile.it e l’esperienza utente degli utilizzatori del servizio.
Mancano meno di 4 giorni alla seconda edizione di #FacileHack, la maratona dedicata a coders, creativi e marketing specialist organizzata dalla nostra azienda che si svolgerà a Milano presso il Talent Garden di via Arcivescovo Calabiana.
Attesa grande partecipazione all’evento anche da fuori Italia, le registrazioni sono state chiuse per sold-out all’inizio di questo mese.
In meno di 24 ore gli hackers partecipanti dovranno confrontarsi, mettendo a dura prova le proprie capacità fisiche e creative, per presentare un’idea o un prototipo in grado di ottenere il punteggio massimo della giuria di qualità.
Here at Facile.it we are constantly dealing with a lot of forms: we use them to collect various information and data needed to feed our in-house comparing algorithms. These forms could be really complex, having multiple rules and dependencies between fields, and they are likely to be changed and tuned frequently.
When I joined Facile.it, a lot of forms within the Android app needed to be updated or modified and sticking with the existing strategy would have required me to do a lot of work just to add or remove a simple field. So I took a step back and I started thinking about a strategy that would have allowed me to define and structure a form in a more flexible and declarative way. I wanted to be able to declare the relationships between fields, their validation rules and their serialized representation (how they are sent to the server).
With version 1.5 and newer, AngularJS (which for clarity we’ll call just Angular from now on, even though the naming convention was recently updated) introduced their own interpretation of Web Components, back-porting Components from Angular 2.
Using Components with Angular today not only means writing code much more easily upgradeable to future framework versions (especially using ES6), but it also allows you to modularize and reuse code more easily, in line with the modern frontend programming style that will be more and more modular.
Maintaining state is the main cause of complexity and headaches in software development: without a careful consideration of state, our projects will inevitably become impossible to understand. In fact, various development techniques and programming styles are mainly there to handle state in a responsible way: for example, monads, as used in functional programming, are often employed for this very task. A good general way of managing state is trying to make it immutable, either through the use value types, that is, types which instances are passed around with deep copy semantics, or simple immutable objects, which have reference semantics but because they’re immutable their state is fixed.