
Ask HN: What are your web dev preferences and interests today? - Dowwie
Suppose you are about to begin a new, massive project that includes web dev.  What tools and techniques are you going to choose and why?
======
g105b
The main technique that I choose is to build web applications using only web
technologies - by that I mean tech that is included within the concept of
"World Wide Web" and "HTTP" (links, pages, forms, buttons, etc.), rather than
building using immature/unproven technologies such as single-page-application
frameworks or other client-side rendered tech.

The reason I find it important enough to write in this reply is that there are
so many web developers (actually, moreso web designers) that are absolutely
sold on the concept of JavaScript running the whole stack, and I have found it
very difficult to tame the development decisions of recent projects where
working with others is a requirement.

There are certainly concepts that client-side frameworks have made popular
that are much better for the developer and end user, but I have yet to see a
valid argument for not rendering that page on the server and enhancing its
functionality, where needed, using CSS and JavaScript. I don't want to bet the
success of my product on an upcoming hot framework that overrides browser
navigation/scrolling, as oftentimes when a client-side framework becomes very
popular, it starts finding the same problems that the World Wide Web solved
twenty years ago.

~~~
Dowwie
What libraries/techniques/tools are you using for this traditional style web
development?

~~~
g105b
I like to adhere to Uncle Bob's _Clean Architecture_. Any server-side language
will allow this; I choose PHP 7 and am currently working on an open source
toolkit that brings modern techniques to PHP. It allows me to code using
standard techniques with little-to-no library dependency.

For example, it's a great idea to code the views of the web apps in plain
HTML, and to make HTML dynamic, use the well-understood Document Object Model,
rather than introducing something {{LIKE_THIS}} which instantly makes your
application bound to the platform. You can see this in action in part of the
toolkit here:
[https://Github.com/PhpGt/DomTemplate](https://Github.com/PhpGt/DomTemplate)

Using the DOM in this way doesn't impose anything on the actual HTML, so in
theory the views of the app can be switched out to use another
framework/language/platform without too much effort.

While documenting the toolkit, I have tried to apply Uncle Bob's _Clean
Architecture_ to the web, coming up with this description:
[https://github.com/PhpGt/WebEngine/wiki/Application-
architec...](https://github.com/PhpGt/WebEngine/wiki/Application-architecture)

On the above page I've described how I apply the techniques within the
toolkit. Feedback appreciated.

------
lsiunsuex
I built an app late last year - gave it up when another project went south.
Back then, it was Swift for iOS, AngularJS 1.x for the frontend, PHP / Lumen
for the backend and both Firebase and MySQL for storage.

Had to take a day job, had to learn new stuff there. Lately I've been thinking
about bringing it back to life / finishing it (it was probably 75% done). If I
do it'll be Angular 6 frontend, C# backend, still Swift for iOS and still a
mix of Firebase and some sort of SQL (probably MSSql) for the database. I've
worked out some other infrastructure problems I had last year, which is why I
may attempt it again and just that it was a really good idea and we had real
interest in it just - life happens...

'been getting a lot of job postings for C# developers, so if the project goes
south, again, at least I'll have a real example in C# I can show off.

