Good vs bad practice in coding [closed] - coding-style

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I've been working in this company for about 8 months now and i'd like some advice how to tell my collegues that what they write is bad practice. Let me give a little introduction first.
The company im working at allows its customers to setup questionairres/surveys. The current code is about 5 years old (or older) and they've made a new platform which supports mobile devices. This platform is relatively new, but i've noticed something which i call 'bad practice':
They simply do not seperate code and html. Everything is dynamically build up using 1 single c# generaing class, which blurts out html, script tags, inline css "style='position: relative;'" and so on.
My main question is:
How do i convince my colleagues and especially my IT manager to keep these seperated.
It's bugging me a lot, but maybe i should just let it go. We simply do not have the resources for it and im probably not the person to make any calls about this. I just dont get how come the programmers who made this new 'platform' didnt think about this.
We also have lots of coding problems:
Different versions of jquery and mootools are being used throughout our applications
There's loads of duplicate code
CSS files being included after each other have stuff like '!important' in them, and some are being overwritten with each include. For example: 'Master.css', 'another_file.css' both declare the exact same css rules.
Please help me out to convince my IT department theyre doing things too unorganized, write unmaintable code and simply have no standards anywhere without sounding like a whiner. Don't get me wrong, i love my job, but it's really working on my nerves. If things don't work they do a little dirty hack on a hack on a hack and things will get more messy by the day.

Related

Why Phing/Ant over Bash and Make? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I've been using Phing at work (it was set up when I got there), and thinking of using it for some personal projects. One thing I haven't got my head around yet though is what the big appeal is?
What, if any, are the killer features of Phing or Ant? What are the big reasons people choose to use them instead of (for example) just a collection of bash scripts that execute their build actions? I'm sure I'm missing the obvious, hopefully someone can help me. While I understand that some people may prefer not to use phing/ant, I'm hoping to hear from people who do prefer them about why they prefer them. Just so I can make a more informed decision.
Thanks for any direction or links.
The main feature of Ant is to add frustration to your day, when you know you could achieve something in 30 seconds in a Makefile, but end up fighting with Ant for an hour :)
It was a fresh implementation without requiring a functional shell and all the other standard commands that you expect to be available with a shell. I think that's the real killer feature - you can use it on Windows OS.
Ant XML is far more structured and machine-readable - whereas Makefile+shell is essentially Turing complete and extremely generic. Your IDE has a hope of being able to understand Ant XML, the same can't be said in the general case for Makefiles.
Sadly, the reality after all this time seems to be that the IDEs don't make good use of this potential win. Case in point, opening build.xml in Eclipse just shows you XML.
Which I think just leaves the Windows OS rationale. If there was no Windows OS, probably there would be no Ant either.

Programming in Oracle Apex, is it hard? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
So I am starting an internship this week, I will be working on making some changes to an existing Oracle Apex web app which they use for tracking and metrics. In particular, they don't have very granular authorization set up, meaning that either you have full control or you don't. They want me to come up with something to set up access for non-tech users like the business, for example, and limit their rights to the system.
How hard is apex to work with? I looked into it a bit, it does seem fairly straightforward, but is there more to it that I am not aware of? Also, I am a little surprised that there is no built in functionality to let you set up complex permissions?
I've been working in Apex since August now, and did 4 years of Oracle Forms before this, so PL/SQL wasn't an issue for me. HTML and Javascript i also knew, just not as in-depth, but i believe i've picked up nicely so far.
What i'm doing at the moment is migrating a bunch of old Oracle Forms to Apex. So far my experience is that it can be very easy and fast to pump out the basics, but making your pages more dynamical or user-friendly can eat away some time. Still, the framework is very solid, save for some niggles. For example, they have a javascript api, which handles a lot like jquery. I can mostly get done what i want to, and i think the most time i've "wasted" so far, has been getting javascript code to work the way i want it.
Recently i've also been implementing some authorisation, and i must say it isn't really that hard! You can provide some authorisation schemes, and simply apply those to pages, regions or items. I of course don't know what you really mean with 'complex' permissions ;) There is always the possibility of using the APIs and do manual calls to verify authorisation.
If you're really totally new, then simply head over to apex.oracle.com, and take the 2-day developer guide to get a quick feel for the environment. You'll have to request a workspace, can do the exercises, and play around a bit.
We were looking at apex a year ago. And canceled. It's easy to make standard things, but it's not convenient to develop something specific. May be, we were looking not very properly, indeed.

Which GUI tookit for quick working prototypes/mockups [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
I'm primarily a server-side developer - not even web server stuff. But I'm finding more and more that I need to mockup user interfaces. This is in part to more senior roles doing overall product design, but there is some personal interest as well.
I'm wondering what would be a good UI toolkit to learn. I won't be making production user interfaces, and doing them as web apps would just be fine. I've been leaning towards learning jQuery as it has a graphing library I like to use (flot). Someone else at work is suggesting EXT-GWT.
Is there anything else out there? For straight up mockups I use Balsamiq, but sometimes I want to go a little past plain mockups and add some functionality.
Thanks.
If you're just after GUI libraries/frameworks, have a look at GWT and Vaadin.
You might want to also look at something like WaveMaker, which is a rapid application development platform. As well as allowing you to mock up simple GUI's it should make it easy to add in functionality as well.
I haven't used anything a lot except jQuery.
It has been great especially when you start using the UI and theming which makes quick work of standard things. It'd be a problem if you wanted anything outside the box because then you'd have to find a plugin or write your own. (both of which are fairly easy IMHO.)
If you use ExtJS, they also have a designer: http://www.sencha.com/products/designer
Even if you just go with ExtJS, Senchas has a lot of widgets that make prototyping much easier. ExtJS 4 will be shipping in a month or so. I'd start with it.
http://dev.sencha.com/deploy/ext-4.0-beta3/examples/
You can check out ForeUI. It makes working prototype and run as DHTML in browser. It's quite easy to learn and use.

Pitfalls to avoid when writing project specs [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I'm currently trying to write up some software specs for a large-ish project that I'd like to bid out on oDesk (maybe 3k-6k). I have a classical education in computer science, but minimal work experience and I've never worked in a corporate environment.
I've written up 15 pages of project specs for an API that I want to run on Google App Engine. I'm finding the subtleties difficult with issues such as: where to draw the line on what to specify and what not to; how to break the project up into pieces so that if one part goes wrong, other parts can still be used; where and how to set milestones; and how to screen for a candidate who has the skills to properly implement the specs.
I asked a friend what issues I should watch out for and he said:
Make sure specs do not have contradictory information
Make sure specs are not unnecessarily specific because this will turn off more skilled developers
What other pitfalls and common mistakes should I look out for while drawing up project specs?
While it is important to focus on the functionality of what you want to achieve, also keep in mind the non-functional requirements as well. Think about how you want it to perform, security considerations, etc.
One to add to the list
Make sure the specs are unambiguous. (Can only be interpreted one way...Hopefully)
I think these two links will help:
On Reqs And Specs: http://www.pragmaticmarketing.com/publications/topics/02/0204sj
Painless Functional Specifications - Part 2: What's a Spec?: http://www.joelonsoftware.com/articles/fog0000000035.html

how to manage a compiler project? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I am a CS student and I have a compiler project this year.
I want to know how to manage my project with my three partners.
I know that the compiler has many level and process, and I want to make use of these features to mange my project.
Thanks for any tips/pointers/resources you can provide for me to start.
You haven't really specified what it is that you are compiling, so it's a little difficult to make specific recommendations.
If you're doing something novel, I wrote a blog post a couple of weeks ago that has some specific things to consider:
http://www.plsadventures.com/2009/09/why-programming-language-design-is-hard.html
If it is a pre-existing language you are compiling, then I would work to generate a decent test corpus, and consider using test-driven development to manage your progress.
As you mentioned, there are some obvious components in most compilers that are relatively discrete. I would consider documenting the interfaces that connect these components. For example, if one person is writing the lexer and another is writing the parser, then ensure that you have a list of tokens written down somewhere. The format for your parse and/or abstract syntax trees should be defined and written down so that anybody working on optimisation or code generation is on the same page.
Above all, tests really help this kind of integration. You should be able to build these components separately and put them together, for the most part.
You should use a DCVS like Git or Mercurial, so each of you can develop individually while it's still easy to merge changes.
Next, you should define test cases to know which features you'll need and how you will know that a feature works.
That should help to figure out different areas of the project which don't overlap too much so each member of the team can work without stepping on each others toes.

Resources