solutions for rapid front-end development? - language-agnostic

im using mvc framework and i have learned some techniques that help me with different parts of RAD.
models: doctrine/visual paradigm
controllers/libraries: various design patterns
now i only need to know what technique/solution i should use for the views so that i can create views more rapidly.
cause i don't think it's efficient to code css/html manually, even though i understand it. its the same principle when using visual paradigm to create both my mysql database tables and doctrine model classes. i believe in using right tools will boost up development speed.
so what could i use for the views to save time and energy so i don't reinvent the wheel all the time and can focus on the business logic rather than html/css for everything? of course i would have to step in and fine tune with it when needed.
dreamweaver?
any css generation tools?
960/blueprint for layout?
suggestions?
thanks

I've made a previous answer about developing websites without using HTML or CSS, there might be something relevant. The solutions in that answer are mostly related to "desktop class webapps", i.e. applications not websites.
Apart from that I will say that blueprint and 960gs are both very good solutions for doing normal website applications (webapps?). Things like grids etc. are extremely helpful and will speed up the development. You still have to use HTML and CSS.
I wouldn't recommend Dreamweaver, I have never used it, but I believe that you would still have to edit in the bits and pieces to insert the content, so it probably won't be a good solution in the long run.

Related

Should I use Joomla or go purely HTML

I am currently building a project ecommerce website (for an assigmnet), and would like some tips from the experts around. Should I go for a frontend based on purely HTML,CSS and JS (say with a jquery framework) or should I include a CMS such as Joomla in order to be able to manage better the content ? I am not a very experienced web developer so there is quite a learning curve I have to go through in this.
Thanks
I suggest you use HTML, CSS, JS. They are the three major languages that make up most of the web. It allows a lot of flexibility.
I don't know if you have a domain name or plan to have one but…
There are many web hosting provider that propose built-in solution for e-commerce.
You talk about Joomla but there is also many other CMS that allow you do create e-commerce pages. A Wordpress module can do it with, for example, which I personally think as easier to use.
By the way, if you got enough time and motivation, I recommend you to search for documentation and to experiment the most you can on a custom-coded frontend.
I don't know what is your level in the HTML/CSS/JS languages, but you'll gain experience and that's always usefull.

How do I build the "To add content" page of a responsive website

Context: Ok so I am building a website for a friend. Hes a designer with a high need to daily include his projects (images and text).
Problem:
Ok so I know pretty much how to code in html/css/javascript a front end responsive website, that is the easy part for me, the hard one is the content page. I've never done it so I don't know the best way.
A page that he goes daily put a new project, new images, formatted text (A like a blog). But since he doesn't know anything about coding and front end, it has to be simple enough for him to understand.
Resources: I made several searches and found some websites that allow custom templates with content, one of them standing is wordPress (haven't used it for years). I am currently abusing tumblr for that matter, but their support is quite bad. Should I use one, should I buy a host like bluehost and create my self one, what you guys recommend? I tried google it but perhaps I am not doing it the right way since I am not finding any answer to my problem.
Look, you've come to a programming website, so the most common suggestion you'll get here, and the option I myself recommend is:
MAKE IT YOURSELF!
It really is a fun and very educational experience.
There are many, many ways to do this. In general you'll want to have a front end that communicates with a back end API.
For the front end, there are a lot of options. From templating engines like Jekyll, to MVC frameworks like Laravel, to full fledged high level abstractions like Angular and React, which are admitedly harder to learn but so, so robust, and useful once you've figured them out.
The selection of tools you can use to make the API that supports the website is just as rich. There is ASP.NET for C# (which some people use for the front end as well but I wouldn't), there is Node.JS for JavaScript, with a myriad of libraries and packages to get you started. Flask is a popular option for Python. The list goes on and on.
Oh and dont forget about Ruby on Rails.
As for the interface which your friend will use to add their work, turning all that complicated back end into a simple, easy to use interface is a fundamental part of UX design and, IMHO, quite satisfying once you get it right. Make it sleek and, most of all, intuitive. One shouldn't have to be taught how to use it. It should be apparent from the first time they open the page. You should always ask for their feedback as you are developing it. Some even opt to create mock ups of the interface, in order to get feedback on both its aesthetics and its intuitiveness before a single line of code has been written.
Now, regarding how you'll actually do it, the answer really depends on the tools you opt to use. In general, you'll want to read up on things like the MVC pattern, or React's component architecture. The former is something you'll come across on a wide variety of platforms. The latter is mostly React specific, but in my opinion, understanding how to properly build a website using component architecture means you're in the right mindset, something that will help you no matter how you choose to build it.
All that being said...
Web development is complicated. Creating dynamic websites is a much larger undertaking that designing a static page, or even making an SPA. Though I do wholeheartedly recommend you do it at some point, starting with your friend's website might not be the best idea. Or, you may simply not have the time to sift through all your options, figure out which is best for you, begin the learning process etc.
In that case, there are plenty of publishing frameworks and tool sets to choose from. Wordpress has become very popular in the recent years, and templates and plugins for it are abundant. Alternatives like Medium and Ghost have also gained some traction.
There are plenty of commercial CMS type frameworks. One I have heard good things about is ExpressionEngine. However, I cannot speak for it with certainty.
If you are looking for a website builder, there are also plenty of options out there such as Weebly, Wix, as well as Squarespace. Google sites is a relative newcomer in that department, but seems promising.
So, in summary,
I wholeheartedly recommend building it from scratch. There are many, many languages, frameworks, and tools out there you can choose from, each with its own patterns, best practices and idiosyncrasies. If you lack the time, or simply don't feel like going through that process of building a dynamic website from scratch, you can use one of many tools available. However, that wouldn't be nearly as much fun, and would likely produce an inferior result.

What is the point of CSS Frameworks?

What is the point of these CSS Frameworks? I don't understand them. When I look at them, all I see is boring layouts that seem overbearingly-difficult to adapt to your own unique designs.
Is this the case, or am I just missing something here? I'm referring to (frameworks in general) things like Blueprint, Less, Skeleton, 960 Grid system, Base, Gridless, etc etc etc.
I know this is a really simple thing but I just don't get it. I have searched but have not found anything that helps me to understand what the big deal is. When I look at their code, all I see is mess. Weird class and id names all over the place.
(This isn't a rant or complaint by the way, I just really don't get it.)
CSS frameworks are pre-prepared software frameworks that are meant to
allow for easier, more standards-compliant web design using the
Cascading Style Sheets language. Most of these frameworks contain at
least a grid. More functional frameworks also come with more features
and additional JavaScript based functions, but mostly design
orientated and unobtrusive. This differentiates these from functional
and full JavaScript frameworks. -Wikipedia
Advantages
They can help you learn CSS. You might just literally not know how to pull off a solid multi-column layout. A framework may be a
good place to get your feet wet understanding how CSS works.
They provide code that you just don't need to write from scratch every time, like resets. I've long been a proponent that the star
selector (*) margin/padding reset is a fine reset. I use it all the
time. But... if you are starting a major new project that is going
to be loads of pages, live for years and years, and will grow over
time, you should invest right away in a more robust reset. All
these frameworks start with brilliant resets that cover all the
bases and will have you covered for years to come.
They relieve cross-browser concerns. You can't undervalue this. We've all felt the burn of finding out our sites are borked
in some browser or another at a hugely inopportune time. Frameworks
are built to bring their magic to all browsers.
It helps you build good habits. Like including a print stylesheet in your projects. I always intend to build one, and I
often do, but the chances are a lot higher that I do it if I have
one there from the get-go.
They encourage grid based design. Which is a good thing. Grids don't mean boring! They just help you achieve better
readability, scanability, balance visual weight, flexibity,
expandability, and just overall page page cohesiveness.
They come with documentation. If you need help getting started, framework generally come with some support files. This can be
particularly nice if you are designing a site you will be handing
off to a client. You can just let them know what framework you used
and refer them to that documentation for support requests.
They lay groundwork. If you are using something like YUI, your life will be a lot easier if you use All-YUI-Stuff-All-The-Time.
It's built to work together and built for expandability.
CSS-Tricks
Also see: Comparison of CSS frameworks

Evaluating YUi and BackBone

I want to start a project and I am evaluating the architecture.
And now I am at point to decide the front end components.
I want to use HTML5 + Css3 + Javascript
On Javascript side I don't know what do you recommend. YUI or Backbone. I don't know how to evaluate what can be the best for me. The idea is to create a Browser web app and a Mobile app.
Do you recommend another framework for do that? Or some book, url or something that expose how to organize my front end?
This might be a bit late. But I will say this. I've looked through these so far:
Angular, Knockout, Backbone, YUI
And I read some other comments on Ember.
From what I've seen, Angular and Knockout take the same starting approach. They start out telling you how to interface with the front end. I do NOT like this. They give you a whole lot of rope to hang yourself with if you don't know how to design good architecture. Its completely up to you to build a proper MVC app with them.
From what I've seen of YUI, its EXTREMELY similar to Backbone, which is no surprise because YUI was INSPIRED by Backbone. I have spent a LOT of time looking at backbone and I'm very impressed with it. If you follow its principles and standards, it will encourage you to build a sound framework that won't leave you hanging later.
But I saw another commentor who actually actually moved from Backbone to YUI because he said YUI is more streamlined and all around better. I wouldn't be surprised if this is true. But I need to evaluate it further.
Many folks, including myself, agree that Ember, Knockback, and Angular are rather "heavy handed" in their approach. Like I said, they START with explaining how to interface with the HTML. Right out of the gate, they're wanting you to do things a certain way. This could be very problematic depending on your particular application.. OR it could make your particular application a piece of cake if it fits nicely in their approach!
My two cents!
Backbone is great for creating web apps, both for desktop and mobile. It's strongest point is that it's small and quite simple: you can actually read through the entire annotated source code. Backbone helps you structure your code in a maintainable way, which is the main benefit.
The downside of backbone is that it's not very beginner-friendly: setting up the collections, models and views can be quite challenging if you're not used to it. It also doesn't help you at all in rendering the views, which is a blessing and a curse: it's not as easy or helpful as a widget based framework, but it also doesn't get in your way, which is especially important when implementing the mobile app.
I would recommend you study the backbone todo-example ( http://documentcloud.github.com/backbone/#examples-todos ) to get an idea how the framework works.

RoR and web design (css)

I am starting server side programming with RoR. I am noticing that it's tightly coupled with css/html web design. (Maybe I am just perceiving it that way since this is my first time doing server side stuff).
I just want to know, are server side programmers usually well knowledgeable in css/html layout stuff? I understand the ruby part, but css is giving me a headache. Debugging with different browsers/testing/ a lot of trial and error and still buggy. Finally you get it to work with Firefox and I.E doesn't work anymore...
How do server-side programmers out there usually tackle the "looks"/UI? Do they get someone else to do the css stuff and worry mostly about the functionality?
Thanks.
I answered a similar question here.
Most of the times from something basic, like twitter-bootstrap is now fantastic to get something up and running quickly.
What happens next is up to you: either you have some interest and learn some design skills. Or you get in touch with a designer to do the designing for you. I seriously think you will need to have some HTML/CSS skills yourself, but that is not the same as designing.
It depends on the development shop your working for I suppose. Larger companies tend to have some people focus on the backend, and some on the front end to best suit peoples talents.
I would highly recommend becoming familiar with the front end UI as well for your own benefit though. Most small web development shops are seeking full stack developers that can manage all aspects of the web app from server configuration, backend logic, and UI. You'll be much more well rounded in solving your own challenges, and become a more valuable employee with a diverse skill set.
Since your using RoR I would recommend becoming familiar with SASS and Coffescript since they can save a lot of development time. Also sass provides excellent mixin features to help solve your CSS cross browser issues, which you can find several prepackaged ones in Thoughtbots bourbon gem. https://github.com/thoughtbot/bourbon
The question is impossible to answer.
Many server-side devs are well-versed in HTML, CSS, and JavaScript, at least up to the "Oh that's the IE7 off-by-one bounding rectangle absolute-div positioning bug" point.
However, I think some groups of server-side devs are generally more adept than others: server-side environments like RoR, PHP, and so on tend to push more HTML/CSS onto the devs than, say, Java.
For me, the trick has been to keep the HTML and CSS relatively clean (sass/scss helps a lot), not obsess about pixel-perfect cross-browser appearances, and have layouts that you don't have to mess with much. There are HTML/CSS frameworks that help in this regard.
Conversely, a lot of designers don't know enough JavaScript to be useful--I think it is important for site developers to know enough JavaScript to provide the necessary functionality. Here again, the frameworks tend to breed different levels of JavaScript awareness, although that's changed somewhat as more sites get more interactive.