Tag Info

Hot answers tagged

98

If you get a set of requirements that are physically impossible to implement as the device does not support and cannot support the wanted functionality, you need to explain this to the person creating the requirements. You should be respectful and explain why the requirements are not possible to implement (i.e. the touch screen cannot distinguish between a ...


31

This is an argument that pops up regularly, in many fields and in many forms. The general form of this argument is: Does having [x:tool/technology] make people worse at [y:function affected by x]? For example: Does CAD software make for worse engineers? Do calculators in high school make students worse at math? Does social software stunt people's ...


29

Loosely coupling your application to its framework essentially means you are going to write a proxy framework. Writing that proxy framework is a lot of work, and if you ever switch to a new framework you'll have to do a lot of work to make the proxy framework support the new framework. Of course, different frameworks use different idioms and patterns, which ...


27

These requirements are not silly, stupid or ridiculous. This is in fact very important problem for users of touch screens, that people with larger fingers have it very difficult to pinpoint the target, which is often not understood by little-fingerers. However, if you find this requirements impossible to implement because device's sensors are not able to ...


27

It seems to me that you misunderstand abstractions and code reuse. The whole software development industry is built on abstractions. Just because not using them, i.e. avoiding using frameworks, libraries and in general code which is not written in-house, would increase the cost you need to produce a piece of software by hundred, thousand, probably even ...


25

First, what is dependency injection? Simple. You have a class, it has a private field (set to null) and you declare a public setter that provides the value for that field. In other words, the dependency of the class (the field) is being injected by an external class (via the setter). That's it. Nothing magical. Second, Spring can be used without XML (or ...


25

What does the Spring framework do? Should I use it? Why or why not? Spring is a framework that helps you to "wire" different components together. It is most useful in cases where you have a lot of components and you might decide to combine them in different ways, or wish to make it easy to swap out one component for another depending on different ...


22

Batteries Included Java's Tooling It is just awesome: IDEs: even if some IDEs support JavaScript, the level of support just doesn't compare. Try to refactor JavaScript code on large codebases (say, 40K+ LOC) and weep. Unit-Testing: though that picked up over the last few years, it's also way more mature in the Java world. Continuous Integration and ...


22

Nice Question. Code may be represented by a DAG describing the inputs and outputs of each of the arithmetic operations performed within the code; this representation allows the compiler to perform common subexpression elimination efficiently. Most Source Control Management Systems implement the revisions as a DAG. Several Programming languages describe ...


21

Abstraction is a key concept of computer programming and frameworks help programmers achieve this. This is a good thing. I doubt many us would like to develop complex systems in assembly language! The problem comes, I think, when programmers have little idea of what the abstraction layer is masking. In other words, you need to have some idea of what goes on ...


21

I recommend reading the official answer to your question, Appropriate Uses For SQLite. Specifically, the "Situations Where Another RDBMS May Work Better" warns that SQLite does not support concurrent writing: SQLite supports an unlimited number of simultaneous readers, but it will only allow one writer at any instant in time. For many situations, ...


20

Frameworks can be tricky indeed. Problems can easily arise when a framework is too "opinionated", i.e. when it really prefers one particular style of application and all parts are geared towards supporting this particular style. For instance, if the framework completely abstracts the authentication process of a user by allowing you to just add one ...


18

Agreed. I presently work on a software package that is so encumbered by frameworks it makes it quite nearly impossible to understand the business. Once frameworks remove you from actually solving business problems instead of just solving MVC, it has gone too far. As you state, IMO many programmers try and architect/program to solve the ORM and MVC, and they ...


18

Rails (obviously!) Has Restful URIS, ORM with Active Record, Webservices - easy, unit tests come as standard. Can scale just fine (v3 is better at this). And Ruby is a real beginner friendly language, although the meta-programming aspect of it that can trip beginners up. Worth being wary of that.


17

I like Django which is a Python Web Framework. RESTful URIs are default (also you can create any URL <-> View Mapping you want). It has a build in ORM Mapper which allows you to to nearly everything without a single Line of SQL supporting PostgreSQL, MySQL, Oracle and SQLite (and other via 3rd party backend, see here). You have easy access to caching ...


17

It's not an exact science, so don't expect to be able to predict the future trends in the technology landscape more than 5 years out with any certainty. But I would look for all of the following: Installed base - a bigger installed base means lots of companies will contine to invest in the technology and its maintenance, which means developers will be ...


16

No. But they are nice. Pros: Saves time not having to rebuild the code yourself. Use the myriad of features, functions, and data structures someone else built that apply to your project. Cons: Not having built the code yourself could be a loss at a better level of understanding on the foundation of which your project operates.


16

My experience is pretty much the opposite of yours. When doing small, quick things, a framework can "get in the way" a bit as you need to lay out your code in a certain way and think about things carefully before proceeding. By just jumping straight to mysql_query you can have your prototype up and running much quicker. But for large, complex sites, ...


15

It is typical to have 2 week sprints. For me, the first sprint or 2 will likely have less "visible" features than later sprints for this exact reason (for some tenuous description of "less"). That being said, it certainly should not take you 2 weeks to build your entire scaffold and have nothing in the UI visible to show for it. Maybe you do not flesh ...


14

Does automatic transmission or rain-sensing windshield wipers make us worse drivers? I don't think coding without frameworks necessarily implies a better understanding of underlying systems. This is evidenced by employers having to ask simple coding questions at interviews just to make sure the candidate can pull a coherent method together. Ultimately it's ...


14

Other platforms don't need Spring because those languages are not anywhere near as restrictive as Java. I'll give an example with node.js Inversion of Control container: configuration of application components and lifecycle management of Java objects server configuration is done either in code or a simple json config file. As for generic IoC systems, we ...


14

There is no way to know if something is going to be future proof I would rather focus on does the technology help me solve the problem I have today. You would abandon learning a certain language or framework when it no longer works to solve your problems. Be involved in the community that represents what you are doing and you can get a good sense on whats ...


13

As with all questions of this sort, the answer is "it depends". Factors to consider include how comfortable you are with the language/framework and what features the project requires. Having said that, I've built sites using a number of frameworks, each with its own strengths and weaknesses: Grails If I need to get a site up quickly for anything ...


13

Here's the bottom line: it can be difficult to implement features outside of a frameworks configuration. Let's go through this assumption by assumption. Lost Understanding - by relying on the features of a framework a developer is in danger of loosing understanding on how things work (underneath the hood). False. You'll never lose understanding of ...


13

Absolutely. There are so many poor frameworks out there, and this may be more true in PHP than any other language. There are several PHP frameworks, even popular ones, which I would not take a job if the client insisted on using. One rhymes with "Zrupal". If a consultant has problems with a framework or is unfamiliar with it, it will affect their ability ...


13

"There has to be a good metric to determine when it is appropriate to use a framework." Not really. If there were good metrics for determining appropriate use of any technology, you wouldn't see language, editor, and methodology holy wars. The groups I've worked with all do the same thing - make a guess at costs and benefits, choose the most ...


13

My opinion is that code first's automatic database creation is only for development. I answered similar questions on Stack Overflow where I described both how to upgrade the database and why is automatic functionality bad in production: Deploying database changes in EF 4.1 Using EF4 code first: How can I change model without loosing data Upgrading the ...


13

Because if you know "real" Javascript, then it doesn't matter if you know jQuery but not MooTools, DoJo but not Closure, etc. If you know "real" Javascript, you should be able to pick up any particular Javascript library with relative ease. It's (often) better to use a library that helps with the cross-browser issues, but you can't know the library without ...


13

In most high level languages it's trivial to write using AOP and/or IoC design principles. All you need to implement AOP is for the language to support higher order functions. For example: def log(fn): def wrapped_fn(*a, **kw): logger.log(fn_formatter(fn, a, kw)) return fn(*a, **kw) return wrapped_fn @log def do_something(my_friend): ...



Only top voted, non community-wiki answers of a minimum length are eligible