Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API

From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "code quality"
-
I hired a woman for senior quality assurance two weeks ago. Impressive resume, great interview, but I was met with some pseudo-sexist puzzled looks in the dev team.
Meeting today. Boss: "Why is the database cluster not working properly?"
Team devs: "We've tried diagnosing the problem, but we can't really find it. It keeps being under high load."
New QA: "It might have something to do with the way you developers write queries".
She pulls up a bunch of code examples with dozens of joins and orderings on unindexed columns, explains that you shouldn't call queries from within looping constructs, that it's smart to limit the data with constraints and aggregations, hints at where to actually place indexes, how not to drag the whole DB to the frontend and process it in VueJS, etc...
New QA: "I've already put the tasks for refactoring the queries in Asana"
I'm grinning, because finally... finally I'm not alone in my crusade anymore.
Boss: "Yeah but that's just that code quality nonsense Bittersweet always keeps nagging about. Why is the database not working? Can't we just add more thingies to the cluster? That would be easier than rewriting the code, right?"
Dev team: "Yes... yes. We could try a few more of these aws rds db.m4.10xlarge thingies. That will solve it."
QA looks pissed off, stands up: "No. These queries... they touch the database in so many places, and so violently, that it has to go to therapy. That's why it's down. It just can't take the abuse anymore. You could add more little brothers and sisters to the equation, but damn that would be cruel right? Not to mention that therapy isn't exactly cheap!"
Dev team looks annoyed at me. My boss looks even more annoyed at me. "You hired this one?"
I keep grinning, and I nod.
"I might have offered her a permanent contract"46 -
Yes Linus Torvalds is an asshole and the world is better because of it.
In short Linus's acid takes on code quality over developer fee fee's might be one of the things that has made the Linux kernel and the GNU/Linux project such a long lasting open source success and in my opinion the risk of him falling for all this "let's be nice and non offensive" bs trend may impact negatively on code quality.
Being an asshole has it's downsides and it's not always the best response, I'll give you that, but personally I think most of us who are viewed as assholes are seen like that because we put quality over convenience, facts before feelings and dedication over mediocrity; it is not because we hate you, it's because we measure ourselves with the same stick.
It depends on one's character, but when you've been toughened up because of bullying(I don't doubt many devs have been since being a nerd has never been hip) or life in general, you learn to stop whining & pick yourself up and you expect everyone to be competitive and competent as you are and it gets frustrating to manage people who don't fulfill your expectations.
Pros: You get shit done and you do it well.
Cons: People won't like you and you don't tolerate failure (much less mediocrity).
Yes Linus is an asshole, my coach was an asshole, some of my best teacher's have been assholes, I had friends who were assholes, heck I'm an asshole!
But I thank them because they made me better than I was, just as people have thanked me for being the right amount of asshole.
A warm thank you and fuck you Linus, keep being the asshole we need.36 -
I grinded out 8k lines of code in four weeks, but don't consiter myself a programmer.
I can sit down at a computer and in under five minutes have all of the passwords saved to a USB, and the OS is rendered unusable, but I don't consiter myself a hacker.
I can make great high quality artwork, but don't call myself an artist.
I got 2k ++ in 16 days, but have yet to order my stickers because I don't feel like i've earned them.
But most impressively of all, I can fool everyone around me into thinking I'm happy. Even though I'm unsure I can even feel it.
..Bit of a darker rant, but some things need to be said.67 -
Heard the plumber yelling because of the work someone before him did on my heating system...
As a programmer: -
Please for the love of god name your variables in a sensible way! How the FUCK am I supposed to read your shitcode if you decide to write 6 (!!!) nested loops with variables each named by exactly one character. With no comments whatsoever!
I would rather crack password hashes than this nonsense.13 -
---- Startup RantLife ----
A senior developer joined the team, let's name him Bob, and this guy is really good no doubts about that.
He made suggestions, some improvements, but Bob is always waving his hands and says out loud that some part of the code base is really really bad.
I kept quiet until one day I had to pair with Bob to check a feature. Guess what happened, as usual, Bob clenched his fist and start pointing that this code is super ugly.
So let's check the history of changes and boom, Bob was the main writer.
That moment, I was completely silent, trying not to smile as Bob came up with an excuse, he never admits that he is wrong, now he needs a scapegoat and he starts blaming the process, the planning...
I believe that being humble and saying sorry is a quality that it requires time to develop.
So don't be like Bob, please :)14 -
Today I felt sorry for my boss.
Story behind it:
My boss always encourages me to do the right thing. One of those right things is to enforce quality gates in our build pipelines which, as many of you know, means that the build fails if certain quality parameters are not met. Now an external vendor team merged the code this past thursday for a large feature that they had been working on and our build failed majestically throwing out the statistics and the offending files and lines of code.
All hell broke loose and there were escalations and what not and people working extra hours and over the weekend to try and get it right. So, I get a call from my boss earlier today to explain to me how important it is to release the feature and how it's going to be very bad if we don't. He was trying to justify his ask which was to lower the quality criteria and let the build pass for this week. Of course the dev in me was furious but then I realized it's not him but the corporate culture. Why would he or anyone would risk losing their jobs over the quality of code?
If you work at a place where IT is a support function of the company's primary business, I understand the moral compromises you guys have to make sometimes to keep the ball rolling. Thank you for your effort to make the world a better place.
So, thank you boss for all your support. I know it's not always up to you to decide on things but keep up the good work.5 -
I'm not sure if my in-laws know me really well, or if they are secretly plugged into Github and are making a comment on my code.4
-
Reviewing coworker's code:
Me: I see you're doing a convoluted sort for every element twice to get your two lists in sync... 😐
CoWorker: Yeah. *straight face, no regrets* That's the only way to do this.
Me:... Uh... No? You can just manage one list with a simple struct and then use the the standard sort.
Coworker: Yeah sure I know. But it'll take time. We don't have time.
Me: *aghast* This is embarrassingly bad code!
Coworker: Don't worry, later on I'll use a hashmap for it. But this needs to be pushed now.
Me: *to myself, no you don't need a hashmap*
Okay, you do you but I can't back you on this. It isn't going to take a lot of time to correct it.
Next day.
Coworker: Hey can you review my code again?
Me: You've made the changes already? *in a bored tone, knowing that they wouldn't have changed shit*
Coworker: No this is a different file. Our manager agrees that we can worry about performance later.
Me: Sure. *😀🔨🔨*
Few weeks pass by:
QA: The operation takes absurdly long time to complete even with the smallest data. Ten minutes for X is unacceptable.
Me: Who would've known? ☺️22 -
Volunteered to fix a brittle component in our app. Turned out to be 26 classes of mostly copy pasted code that is riddled with todos and void of feedback for the user. Here's a pretty representative sample of this code's quality:5
-
KISS.
Keep it simple, stupid.
At the beginning the project is nothing but an idea. If you get it off the ground, that's already a huge success. Rich features and code quality should be the last of your worries in this case.
Throw out any secondary functionality out the window from day 0. Make it work, then add flowers and shit (note to self: need to make way for flowers and shit).
Nevertheless code quality is an important factor, if you can afford it. The top important things I outline in any new non-trivial project:
1. Spend 1-2 days bootstrapping it for best fit to the task, and well designed security, mocking, testing and extensibility.
2. Choose a stack that you'll most likely find good cheap devs for, in that region where you'll look in, but also a stack that will allow you to spend most of your time writing software rather than learning to code in it.
3. Talk to peers. Listen when they tell that your idea is stupid. Listen to why it's stupid, re-assess, because it most probably is stupid in this case.
4. Give yourself a good pep talk every morning, convincing you that the choices you've made starting this project are the right ones and that they'll bring you to success. Because if you started such a project already, the most efficient way to kill it is to doubt your core decisions.
Once it's working badly and with a ton of bugs, you've already succeeded in actually making it work, and then you can tackle the bugs and improvements.
Some dev is going to hate you for creating something horrific, but that horrific thing will work, and it's what will give another developer a maintenance job. Which is FAR, far more than most would get by focusing on quality and features from day 0.9 -
Boss: Have you finished that feature?
Me: Almost there, i'm refactoring some classes...
Boss: What? Refactor? But thisnis a new feature, it does not need refactor! We don't have time for this!
Me: 😵🔫
This is what happen when you care about code quality.5 -
A guy breaks into your house and start slapping your face with a huge C programming book for 5 minutes until you bleed top quality code from your nose.
Well this is what I was going to comment to the "learn C in 5 minutes app" rant, but can't find it anymore.2 -
!rant
Some days ago I finished "Ray tracing in a weekend" (Peter Shirley) and I'm learning a lot :D
In the new year I will start with "Ray tracing the next week", but there are still some things I want to tackle before that (improve code quality, optimize... it's my first project that is bigger than a codeforces problem solution, a part from the projects at work).
Any sources of wisdom and recommendations are welcome!!9 -
I recalled a seemingly simple task I took on.
We were building a booking system, and I had to figure out how to retrieve bookings by a certain date range.
Upfront, the tasked seemed simple until I realised I had to both figure out the logic and the SQL statements needed to retrieve all bookings within a certain date range in one query.
I ended up drawing a model to help me visualise the various date-range criteria to be satisfied. And used unit tests to help me think through each date range criterion and make sure they were accurate. Some were obviously from paranoia, but better to be safe than sorry...
After that, I had wrote down raw SQL directly into Sequel Pro first to make sure my query logic was accurate too, before translating into something the ORM equivalent. This was when I learned how to define and use variables in SQL. The variables were throw-away code; I just didn't want to have to hard-code the test date-ranges over and over again; minimise chances of spelling errors.
Needless to say, felt my problem-solving skills went up one level after this task. Saw my coding style and unit tests improve. And also the thought processes that go into how to maintain code quality...4 -
The rants I read here make me want to be a better developer. I started writing tests, linting code and ensuring 'quality code' because of the devrant community. Being a self taught developer, you never really have anyone to thank. But today I would like to appriciate you all for the rants, comments and advice that make us developers become better at our craft.2
-
A nice word to all developers who say stuff like "I know I write bad code, but what does it matter.":
Please try to think in a logical way about what this part you are about to write has to do. It is much more difficult to rewrite code, the longer you wait after you started to code.
Bad code can have big impacts on different levels.
For example financially: Bad coding style or program structure can lead to thousands or much more in losses because of nasty bugs, bad performance, expandability or maintainability.
Think about quality over quantity.
A little example: I had to work together with other coders to meet a fucking tight deadline. The last day we coded like crazy and these dudes started to apply styling changes (CSS) directly as inline styles to the HTML code, instead of taking a few minutes more to find where in the CSS files they had to make the changes.
At the end of the deadline we had more stylingbugs than before. It took us another whopping 3 hours to fix what they had done.
So next time you code: Thinking before coding is mostly faster than just straightahead coding and fixing at the end. 😉4 -
No matter how much product owners claim "bugs have priority over anything else", "we value high quality structured code", and "we do test driven development"...
...Once a big client wants a feature to be developed before they sign up, dirty code will be written from napkin specs, and that code will always be refractored "soon".6 -
"Quality CSS" is much a fucking misnomer. As someone whose been writing this shit at scale for 15+ years I can tell you all CSS code is garbage. The only thing you should do is make sure you don't have name collisions. Classes/components are self contained. And use variables when possible. DRY makes sense usually, but if you're dogmatic about it you shoot yourself in the foot.9
-
That moment you realise why you enjoy the dev life again.
It's been a long time since I've had a solid day of coding, just coding..., no meetings, no wild requests, no crazy issues, no data fixing because someone can't type a number correctly, just me, myself and that keyboard going on a field trip of quality coding time again.
Ah, it's a good day to end the week on!rant holy shit no meetings no problems lack of bau devlife those feels straight code quality code time back to the old days3 -
"I strive for code quality and maintainability. I actually do. And i will not work for a company that does not care about it and just wants something done as fast as possible.
The only time i will do something quick and dirty is if it's actually urgent. And even then with one condition - my next task will be to fix it properly.
I do not care about your deadlines. I will do my best to meet them, but not at the expense of code quality. I've seen too many projects fall into technical debt, where productivity is so low, that the only way to move forward is hire more people and start working on a project 2.0
And please do not lie about how great your company is, if it's not. These kind of things surface very soon, and you will have wasted both of our time, because as i said - i will not work for a company that does not care about code quality."
you think i'll ever get a job again if i put this on my CV ? :D10 -
I'm real tired of my coworkers always trying to one up me and being elitist about their code. Like I get it, you think PHP is shit, C is so much better than Java. Wow, you must be so knowledgeable! /s
Just because you're bashing on bad languages and talking shit doesn't mean you write good code, and in fact your code isn't top quality, I've read it. All you're going to accomplish with an elitist mindset is close yourself off to improving, and that's probably the worst thing you can do as a developer.8 -
1. Refactor shitty code because it is hard to maintain
2. Rant about how can someone write a code like that
3. Check commit log to see who is the person to blame
4. Found out that's me1 -
Yo, is this devrant or spamspace???
Like, do you even fucking work, mates? Are you a dev? How doesn't a fucking legacy code piss you off on a daily basis? What are all the ways you want to respond to your customer's/PM's abuse? Does your lead dev even know jackshit?
Where did all your quality rants go? Why do you all sound like second graders writing essays for school? Have some passion for your job, and hatred for the incompetence for others!
Now, go produce some quality rants! Funny ones too! Bonus points if it's angry-funny.21 -
That moment when the you actually think that this huge refactoring isn't worth it, but you do it anyway so you can live with yourself...
Code quality is love. Code quality is life.1 -
Cringed when I saw camelCase, snake_case, PascalCase and CONSTS (for non consts) in 10 consecutive lines of code! 😖😖😖
I suppose if you don't know which coding style to pick... Just try them all!!!!! 😱7 -
Indian web dev companies suck ( for developers )
when I finished 3 year grad program in computer application here in my country (India), I thought life's gonna be fun working as a developer. Oh boy, I was so wrong.
I started out working for a small service based IT company, followed by 2 more. I realized really quickly that they're nothing short of a scam. If your company's only agenda to somehow survive in the market and showing no signs of growth in 8 fucking years, then I'm sorry you're working for scamsters.
Now I'm not saying that all of them are alike. But most of them sorta are.
They don't give a shit about quality, not one bit. Quality means no money in the short run. And they haven't been able to develop any strategy to deal with that. Hence, no growth.
They promise 100 things on their website but only provide shitty services in 10.
There is no pair programming, no code review, no code quality check, no architect, no database designer. They won't give you extra time to write test cases. They use git as a storage device.
They don't put their developers (especially the ones who are learning) under any sort of managed development framework to ensure smooth work.
At the end of the day, their main objective is to somehow NOT deliver a project but finish a milestone and make money out of it.
After cashing out for a milestone, they want you to put your current project on hold and start working on a new project until you have like 10-15 projects in the pipeline and you're severely overwhelmed and you just wanna fucking QUIT.
They would say YES to literally every fucking thing, only to disappoint the client later.
I can't believe someone in the US, or UK thought it'd be a good idea to approach these companies
for their brand new app ideas. They're so fucked.
They're rarely finishing any project.
I'm sorry if I hurt your feelings. I had to get it out of my system.11 -
!rant
Our lead dev in the company seems to be a smart guy who's sensitive about code quality and best practices. The current project I'm working on (I'm an intern) has really bad code quality but it's too big an application with a very important client so there's no scope of completely changing it. Today, he asked me to optimize some parts of the code and I happily sat down to do it. After a few hours of searching, profiling and debugging, I asked him about a particular recurring database query that seemed to be uneccesarilly strewn across the code.
Me: "I think it's copy pasted code from somewhere else. It's not very well done".
Lead Dev: "Yeah, the code may not the be really beautiful. It was done hurriedly by this certain inexperienced intern we had a few years back".
Me: "Oh, haha. That's bad".
Lead Dev: "Yeah, you know him. Have you heard of this guy called *mentions his own name with a grin*?"
Me: ...
Lead Dev: "Yeah, I didn't know much then. The code's bad. Optimize it however you like. Just test it properly"
Me: respect++;2 -
An open letter to those who think lines of code == a decent metric for productivity:
NO!!!
Just because I wrote 10 lines of code all day (yes just 10 very well thought out, many times rewritten) lines doesn't mean my day was unproductive. Quite the opposite, while other devs pad their shit with:
//Adds 1 to I
I++;
Yup. Quality code. LOC doesn't lie.10 -
What I was supposed to do today:
Finish up some homework and code for a bit
What I actually did today:
1. Boot up my laptop to get started on homework
2. Open Spotify and try to connect my headphones
3. Reinstall Bluetooth and pulseaudio to connect to headphones
4. Connected! But the sound quality is shit
5. Spend an hour or so learning about codec sinks and how Bluetooth is the definition of an overengineered clusterfuck
6. Install some package from the aur to get AAC codec support
7. Now we have high fidelity audio, but the headphones still connect to the crappy SBC sink, so I spend another 45 minutes writing a shell script to automatically switch to the AAC sink when a Bluetooth headset connects
8. It’s finally working! But now I have no motivation to do my actual work. Fml9 -
I'm working in a blockchain company for $180 as a junior programmer and there is a mid-senior guy who get ~8 times more than me. So we got a project to make a backend API with its tests. When I was partly completed my part of the project I asked that "mid-senior" to share his code with me. Nothing was done, and he asked me to push my changes to git so he could start to do something (view at my code and start copying). BUT. He couldn't even pull from git. He couldn't use that fucking Visual studio's team explorer and even the solution explorer. Ok, he was working with VS for the first time, but I did too. I cloned the repo gave him the environment to start "working" and get back to my work. After that nothing changed, he was writing each one-lined if block for half hour and the code was very dirty. Finally I've got his laptop and started to writing his part by teaching him all the programming. You may say I'm mad. I really do, I think that I did all project. This is sad... How can people get this much by being this far from the programming? We need really high quality programmers.3
-
My teachers use the number of commit you do as measure for the quality of your work.
I've the least number of commits this week since I spent most of the week doing encriptions algorthims instead of UIs and unit test as the rest of my team.
But, by their logic, I'm the worst of the group. It's simply stupid.9 -
How I spend my days at work working with legacy code:
* Writing tests before I do anything
* Noticing that i cannot write tests because of antipatterns. Lots of them.
* Refactoring to make at least a tiny bit testable.
* Then writing tests.
* More rewriting and refactoring
* Finally adding that one feature my boss asked me for
* Writing tests for that new feature (my do that before implementing)
* Explaining to my boss why it took me so long and agreeing on stopping writing tests.
* 2 days later: explaining why i still broke something.
But in the end my code works just fine.
my colleagues handle things differently. They just ignore problems as long as at least one feature works a bit.13 -
Apparently some freaking man in my ex-team tried to learn Vim because he thought he could become more efficient but he spend more than two weeks trying it while delivering poor quality code with extra spaces, bad indentation and extra "wq" strings11
-
Everyone complains that a certain developer's code is not up to standard and when they have to take over his project the lack of code quality is really slowing them down.
I look at code, agree it is poor quality and put together a learning plan for said developer.
Also look at who approved every pull request which allowed bad code into our codebase. Same developers as those complaining it's no good. You had your chance to stop it!9 -
Manager: what is the estimations for this task A nd B?
Me: Task A: 3 months for 1 guys, and task B: 2 Months
Manager: ok, u can have a fresher, and finish task A, and u urself can pick task B, u can train him and bring him up to pace...
Me: (trying to recalibrate my estimations)...
Manager: oh and u have 3 weeks to deliver production ready scalable quality code with junits, documentation and testing done...
Me: then why the fuck did u bother for the estimates?
Manager: oh that is just for the process complaince...I don't want any trouble in audit...5 -
OK so I'm just going to announce this. I'm done with my WPF client for devRant. It's not really "Production" quality but it does what I want and well... it's good enough for me and I need to move on.
Here's the release and code if anyone is interested. If you want any other feature, you can just fork and implement it yourself.
Repo:
https://github.com/allanx2000/...
Release: (ClickOnce installer in app.zip)
https://github.com/allanx2000/...23 -
I was having dinner with two girls, one a project manager and the other some finance reviewer or something like that. We were discussing our line of work and I was talking about how bad quality code affects everybody and the finance reviewer girl goes like (and I quote) "In our company we use polymorphism, inheritance and encapsulation so it's not a big problem. So our database has a parent class and we only use the parent class". I was at a loss for words. I mean, if only more programmers just did that, right?14
-
I'm task to amend the code smell in the project. I literally can cry a river.
I see such thing as i = i++; - It's flag out as a bug.
I have also seen check in classes. With un-used variables. I literally cried.
In the past, i ask why do i got to care about code quality. I actually start to get angry like the team leads in my project.7 -
Hired a designer below me.. guy never wrote a full back nor frontend... Used npm shit for all his solutions and worked his way above me just by kissing ass and polluting the codebase in such a way 70% would be open source shitty plugins for shit he could not do by himself code wise...
At some point he assigned some of his tasks to me and I couldn't work with his patchy framework that was non existent within the codebase I worked on ...
At some point between npm installed tantrums I got pulled up to HR because my code quality dropped... And it was this fucktart that accused me of this saying I could not do modern development...
In the end I either had to butkiss after his butts or just quit, so I did the latter... I told him and HR I owned alot more code quality than this asshat but just not his way of working and therefor it was more an issue of code equality I was never aware of ...
A month after that the company got overtaken by some silicon valley bullshit company buying up competition, and he is still working within that shithole dealing with 90's tech...
Was the best thing that happened to me, after that I grew alot in skillset and such by investments from other jobs and projects... If I would still work there today I would consider myself a caveman6 -
Management: Create [totally idiotic and complicated feature, near to impossible to create]
Me: that's close to impossible and could probably destroy some other parts of the application.
Management: well, then your application is poorly programmed.
DAFUQ? HOW DARE TO JUDGE THE QUALITY OF MY CODE WITHOUT EVEN ABLE TO READ 2 LINES OF CSS? WHAT THE FUCKING FUCK IS THIS?
I'm really not easily offended but this sentence hit really hard.4 -
All the noob jokes about "tee hee I write such bad code exdee" fucking drive me nuts.
There are absolutely such things as good codebases, in any language. By posting "tee hee funny relatable" "memes" about your shitass code you just make yourself look like a fucking idiot who excuses poor quality with "haha so relatable!" bullshit excuses.
Thank you for being the literal cancer of the industry, oversaturating the markets and making all of our managers think we're fucking idiot babies that have to be wrangled like cats in order to get a single feature out the door, devoid of rational thought or a modicum of expertise.
Fuck you. You're the problem. Be better or find another profession where slacking off is acceptable.21 -
I'd say one of the best advice a dev gave me, was that, I should not write duplicate code, but rewrite these parts to a single function.
And another one: If you use specific values in the code, instead of putting it in multiple places, assign it to a variable at one place and use the variable later on.
These advices sound quite trivial, but I think every beginner should learn these as eary as possible.
Boiiii have I seen shitty code from people who don't give a hobo's ass about maintainable code.
Be a good coder.
Write for quality, not quantity.
Care about your successor.
Thank you.
If not, I will fucking find you, fill your guts with napalm and light you up alive on a rusty pole while laughing hysterically.1 -
I saw this on the first page of a book that discusses techniques for writing clean code... The more I think about it, the more accurate it tests.
-
I think Clean Code: A Handbook of Agile Software Craftsmanship by Robert Martin should be a must to read.
In school no teacher puts emphasis on code quality.
They should learn how to name variables and functions the right way at an early stage in order to better perfect their craft :)3 -
I dont see why recruiters find it relevant to ask how many lines of code a piece of software has. Like seriously why!?!?!?!
It by no means measures the quality of the code or the usability or complexity of the software.6 -
Gotta love moments when you find legacy code like this :)
P.S. Yeah, that was the whole script, written by just one guy.6 -
Today I started work on a new project that contains a lot of legacy. I asked the developers about unit testing javascript and was told that not only is there none in place, but it's not worth adding any in.
At first, I grimaced and thought fair enough. This is their codebase, it's their choice. I've now been thinking about this for a few hours and have instead decided that screw those guys, I'm adding in a testing framework, a module pattern that's compatible with the existing code, and unit testing the crap out of it. If they don't want it they can refactoring it out, but I can't bring myself to intentionally deliver code I know is crap.
I WILL FORCE CODE QUALITY ON THEM.7 -
Code quality check punishes writing massive documentation strings due to "too many lines of code"
FML1 -
Coding-related ads are always entertaining. They nearly always contain easily spotted nonsense and error-filled code. Not even sure where to start with this one...9
-
Consumers ruined software development and we the developers have little to no chance of changing it.
Recently I read a great blog post by someone called Nikita, the blog post talks mostly about the lack of efficiency and waste of resources modern software has and even tho I agree with the sentiment I don't agree with some things.
First of all the way the author compares software engineering to mechanical, civil and aeroespacial engineering is flawed, why? Because they all directly impact the average consumer more than laggy chrome.
Do you know why car engines have reached such high efficiency numbers? Gas prices keep increasing, why is building a skyscraper better, cheaper and safer than before? Consumers want cheaper and safer buildings, why are airplanes so carefully engineered? Consumers want safer and cheaper flights.
Wanna know what the average software consumer wants? Shiny "beautiful" software that is either dirt ship or free and does what it needs to. The difference between our end product is that average consumers DON'T see the end product, they just experience the light, intuitive experience we are demanded to provide! It's not for nothing that the stereotype of "wizard" still exists, for the average folk magic and electricity makes their devices function and we are to blame, we did our jobs TOO well!
Don't get me wrong, I am about to become a software engineer and efficient, elegant, quality code is the second best eye candy next to a 21yo LA model. BUT dirt cheap software doesn't mean quality software, software developed in a hurry is not quality software and that's what douchebag bosses and consumers demand! They want it cheap, they want it shiny and they wanted it yesterday!
Just look at where the actual effort is going, devs focus on delivering half baked solutions on time just to "harden" the software later and I don't blame them, complete, quality, efficient solutions take time and effort and that costs money, money companies and users don't want to invest most of the time. Who gets to worry about efficiency and ms speed gains? Big ass companies where every second counts because it directly affects their bottom line.
People don't give a shit and it sucks but they forfeit the right to complain the moment they start screaming about the buttons not glaring when hovered upon rather than the 60sec bootup, actual efforts to make quality software are made on people's own time or time critical projects.
You put up a nice example with the python tweet snippet, you have a python script that runs everyday and takes 1.6 seconds, what if I told you I'll pay you 50 cents for you to translate it to Rust and it takes you 6 hours or better what if you do it for free?
The answer to that sort of questions is given every day when "enganeers" across the lake claim to make you an Uber app for 100 bucks in 5 days, people just don't care, we do and that's why developers often end up with the fancy stuff and creating startups from the ground up, they put in the effort and they are compensated for it.
I agree things will get better, things are getting better and we are working to make programs and systems more efficient (specially in the Open Source community or high end Tech companies) but unless consumers and university teachers change their mindset not much can be done about the regular folk.
For now my mother doesn't care if her Android phone takes too much time to turn on as long as it runs Candy Crush just fine. On my part I'll keep programming the best I can, optimizing the best I can for my own projects and others because that's just how I roll, but if I'm hungry I won't hesitate to give you the performance you pay for.
Source:
http://tonsky.me/blog/...13 -
The weekend is here!!!
Time to go out and have fun!!!
Nah just joking. Time to write some quality code after cleaning our company's backend (pun definitely intended) all week! -
I've been working as a developer for 10+ years now. I have never seen a real life project with good code, unit testing, planned architecture, and stuff, and I have worked on countless projects. I didn't had the luck to ever work in a greenfield project. All I ever did was grind over someone else's old, badly written, unintelligible legacy code. I am frustrated. I'm thinking about just giving up, because, to me, it seems like no one gives a shit about software quality. No one cares that someone will need to maintain your crappy code. There is no such thing as good code out there. It's simply an utopia to imagine that any project will not rot over time and make some developer's life miserable. This life is a hell... I can't stand it anymore...
...
just needed to get this out of my system :(24 -
For me, the worst co-worker is one who works by the principle of quantity over quality or a person who thinks quick and ugly fixes are a valid way to solve problems. Also: If there are unittest, don't fucking dare to change or remove them, just so your code runs without errors.
But in general, I just can't work with people who don't really think about what they are coding, people who just code straight ahead without making the simplest plan about how to solve something. Most of these people realize too late, that their approach was rather shitty, unreadable and unmaintainable.
I often see memes about "I forgot what I coded last [insert timespan here]". Though it is kind of normal, if it takes you too long to find out what you wrote, you should consider overthinking your coding approaches.
Just my 50 cents.
Damn I miss coding... 4 weeks of learning & exams is too long...6 -
2019 goals:
- finish my masters
- improve my code quality
- build at least 3 personal projects
- learn 2 new technologies
- find better clients or a good job1 -
Staying up late night and sacrifice on sleep to complete the task at hand. A good night's sleep will result in good quality code.1
-
Our CTO doesn't believe that tests improve code quality. We have no tests on any level, no testers/QA, no code reviews. Nada. I wonder why production keeps breaking 🤔 Guess I'll start looking for another job 🤷♂️20
-
My colleague doesn't give a shit about code quality and while I'm busy refactoring stuff after him, he's making flashy demos. Guess who's gonna be senior first6
-
Everyone is on their vacation and I am in good mood so time to refactor some 3 year old frontend, angular, javascript code. After 5 minutes of looking, some great quality of code snippet on the image below.10
-
"Potimized imports and remopved temp code"
Can't help but wonder what's the code quality like from an author of such a carefully written commit message 🤔4 -
met a client yesterday to discuss about the coming task. After discussion, we agreed that I will develop the API for the system in one month. I did the planning and posted the upcoming tasks in Trello. Today, he told me some of the tasks have been done by his staff and asked me if I can continue the remaining tasks and get it done in one week. Hey, bro, what you want!? it is not what we agreed! do you think i can understand the code that your staff wrote, with poor documentation and structure, in few hours and immediately start working on it, yet deliver everything with high quality? come on...5
-
in Russian the word “шляпа” (fedora) means not only the specific hat but also something that makes no sense, something ridiculous or something of low quality.
So when someone sends you some spaghetti code on a review, you can just say “That’s fedora” and I love it. You can also WEAR a fedora and point to it as a response to someone saying something that makes no sense.6 -
Found my old code.
You gotta admit, that's some clean code there, considering I learned C# only for a year at that time.
But those comments....
VeRy WeLl WrItTeN, vErY dEtAiLeD, vErY gOoD9 -
The feeling when random dudes downvote a question, because a guy who finally earned some points on SO dared to format the code with `<code>`<br> He pasted code, log, even explained a little bit and ~500 point guy even flags it like _unclear_ although there's clearly visible import error.
I mean... as an answerer or moderator, I'd be damn ashamed for such behavior! I have absolutely no problem kick a person with words + explanation in my answer or comment, so that (s)he remembers to ask better questions and feels bad about that, because nooby questions are already answered so many times there.
But to downvote because of formatting even if you have a permission to edit and a flag for low quality or because you can't read ~40 lines of log makes you just a retard and hurt the whole remaining community of guys like me who find time to sit there and answer questions to help another people.7 -
let's try something...
Roast thread, please tag and insult your fellow devRanter in this comment section. Get creative in finding swearwords. Too many ++ bombs, poor code quality or you're just secretly in love with some other Ranter and hate it.14 -
!rant
Got back into android development recently and while everything was pretty flawless ( I managed to get the basic concepts implemented in a day) something wasn't right.
For some reason I was not happy with the code i wrote, although I took examples from google and tried to adapt their code style. It looked aweful. I hated my code.
But the code itself wasn't the core of the problem. I could easily add new features and replace components with new implementations without breaking the app. All those "good code quality" identifiers were there.
Turn out the problem is Java. Or to be more specific: Java 1.6
Every listener which only calls a single function once a worker has finished needs 6 lines of code. If you implement the inferface in the class it gets messy once there are multiple workers and you have a generic interface. And there are no lambdas!
So I made the switch to Kotlin.
The app was converted to kotlin in 30 Minutes. Android studio can convert the classes automatically and very little manual work is needed afterwards.
After that I spent 2 hours replacing the old java concepts with Kotlin concepts: lamdas, non-nullable types, getters and setters in kotlin style (which in this case is c# style) and some other great thing.
The code is good looking now. I like it. I like kotlin as it has a lot of cool things.
Its super easy to learn. It took me about 2 hours to get into it. It combines concepts from java, javascript, c# and maybe a few other languages to form a modern jvm 1.6 compatible typesafe language.
Android dev is fun again!2 -
I like js and node in general.
But there's this thing I hate about NodeJs...
The blogs. The goddamn blogs.
Every goddamn blog post. Is code. Dozens of lines of code.
Oh, so you want X feature? Just copy paste this shit.
I swear to god, blog posts are the source versioning system to these people.
What they should instead is
a) Create a package.
b) Add tests to it.
c) Present the package to the reader with some minimal code.
But I'm a getting a huge impression that node blog writers want you to copy the code in their post, paste it in your project, and be happy with it.
Now, I'm not assuming that every person posting in medium.com is a software engineer (and by engineer I mean an engineer, not some fuckwad who begs for github stars on dev communities).
The problem to me is that they fucking SATURATE the goddamn search results.
The same goes for finding an npm package for your need, because there are so many low quality packages it's saturated too, you have too plow this stinking pile of projects that have very low quality,
and there's not a really good npm finder out there. Half of them are dead, some look and load like shit, and npm search has a low barrier for good code.
Me on rails, OTOH "ok, I need this thing", I google that and I swear to [-∞,+∞] I find GOOD packages, well designed, no cookie cutter bullshit, no obscure marketing shit on the README.md, it is very clear what this shit does, and the api is designed for HUMANS.
and it actually takes very little time to know if there's no such package.
I don't have to read dozens of fucking my-fuck-blog.io (jesus christ, the io domain has become such a fucking joke, it got fucking abused to death, there are some cool sites out there using it, but my god, James H. Marketing likes to just absorb everything he can, and the internet was not going to be a fucking exception)
does all of this make sense?4 -
You know you have a quality teacher for C code when you are writing a test and you have to write the code on a piece of paper4
-
I dont know what to feel anymore.
Got hired directly without an interview into 'Data-analytics' department in fortune 500 company. This is my first job. Got hired because this company want start a website that cost millions.
Even though I am junior, I can see that this company has no idea about software development at all. No git server, no code review, no quality assurance and no proper workflow. No senior developer to guide us (junior dev) too.
There is one 'senior' consultant that work on automation project here but he just focus on his work and don't help us directly too.
The contract is about 1 year. Still got 11 months to go :/5 -
I carry the same mindset as an aspiring programmer as I did when I was a music major. There were times I practice for hours and got very little out of it in terms of quality (because I wasn't interested, focused or willing) and then there were times I practiced for 20 mins and really made progress on the piece. So I always keep that in mind to save me time and to produce better code overall.1
-
End user when criticizing a developer for 'taking long' to create something of value from scratch:
(4 hours later): "What's taking you so damn long? Are you retarded?"
Oh I don't know, maybe I have to make sure that tests in my code run well, maybe I have to evaluate everything to meet the custom satisfactions of the user for his ever-so-custom requirements and I also have to make sure I discard what they don't like? And maybe it takes time to deliver a quality product, and so on?
Or would you prefer I deliver an untested product that I didn't bother to think about and I haven't bothered to make sure it matches with their requirements?
What end users don't understand is the involvement in a quality product.2 -
I've started programming when I was 12. Right now I'm 25. I can clearly say that I'm passionate, I've touched I think almost every "type" of programming ever. From game development, through IoT and finished at eCommerce. I never stop learning.
My workmates are pissing me off. For code review sometimes I'm waiting even 3 days when I've changed like 5-6 files. They don't want to introduce "new" technologies (by new I mean who are existing at least 2-3 years, got stable community). They don't want to refactor some core of the application because it's working - they don't care about it as they can later say "legacy system so this basic feature took me a week".
Code quality means for them "use shorthand syntax, this code is ugly" - the basic shit which can do any linter
When I'm doing code review, I'm checking out to this branch, test it, check if the solution is scalable. Then I make my comments. I just hear "stop bitching about it just approve".
Thank God I've made through interview and I'm going to switch job in next week.7 -
So a non programmer friend of mine needed an in house time tracking tool and found one on codecanyon. He bought it for 40$ and asked me if I could provide him some Webspace to host it until they deploy it in house. I said yes and took a look at the code as some stuff wasn't really working. All I can say is "wtf is that pile of crap". Nothing works, it looks like it's written by a first grader and it's UI looks like it was assembled by a chimp (well actually I think chimpanzees could make a better UI). Now I am interested the progress of rewriting that tool for him and I am almost done with all functions that thing should have and even more after 6 hours. I wonder if all stuff on codecanyon has the same quality and if, I am considering this as bonus income...5
-
It's making me really anxious that I have to cut down on UI/UX as well as code quality just to meet my deadline.
-
Why is source code so crappy? May career is not the longest, buy in my 8 years I talked to so many developers and every one told me how important quality, standards, tests and architecture are - but every codebase I've seen is lacking all of it. Everything is running on constant live support.
I don't get it. It is like I live in a world where everyone does know what has to be done, but no-one does it. I suspect it is because people are lazy, lying and won't say no but that's also not a world I want to live in.24 -
Work of a my co-workers good work! It's called colspan you dumb fuck! Best part is that no way I'm changing this coz I work in place where they don't give a fuck about code quality! So fuck it!7
-
I've taken a year's break from university to work on projects using various languages. For the first half, I've been trying to produce as much as possible. Now, I'm taking my time and producing less. I've gotta say, I'm enjoying it far more now. I feel like I'm learning more and producing better quality code.
-
When you're judged by the number of lines you wrote/commits you pushed/any other non relevant stat rather than your code quality1
-
I have a 4S I leave lying around and most apps are dogs on it or crash.
Not DevRant app, though. Pretty solid. Impressive job.10 -
Was helping my dad with his Arduino project when I realized something beautiful about being a programmer.
I have never worked with Arduinos and I'm clueless about hardware stuff but I was still able to debug, go through documentation, example code and fix the issues.
Programming is equally about the passion, dedication and ability + curiosity to solve a new problem as is writing some piece of quality code.
I might have taken a while to realize it but it sure is a wonderful feeling.1 -
(I guess the Question category is the best for this)
Do you believe that someone can be a good dev even if they write shit code?
I personally do, if that person acknowledges the fact that their code is shit, wants to improve it, is humble, is always in the search for constructive, etc as in to make their code better and more readable, I'd think they are a pretty good dev.2 -
I already had a previous succesful interview the day before and just went to my current employer out of decency.
The previous day gave me so much confidence, that I dominated the complete interview and asked them what they could offer me, that I would choose them.
On my way home they send me a text how much they were interested in me and that they will show me code as I demanded.
I took the job because the were as much interested in quality, as I am.2 -
I am a senior Android dev, and I have an old colleague (iOS senior dev). We work on the same project, but in every estimation session he pushes a lot on the lower side: he estimates 4h a task that normally takes 6h or 8h, and the reason is that he has no social life. Right after work he starts working again from home (I can see all his commits), he also works almost entire weekends. I would say he works as average 12/13 h per day.
I don t want to work extra time (unpayed).
About him, it is his life, so I don t care...but at the same time this makes me pressure. I care a lot about quality of code, and I don t want to sacrifice it just for catching up. Most of the people in the team know that he works a lot extra time.
How would you handle this?28 -
I am driven by my love for this industry and wanting to do everything to the best of my ability.
Being a strong advocate for quality i am always on the look put for new practices and finding new ways to improve my code.
If you consider a project 'done' then you gave up on it.1 -
A friend of mine wrote a Rubik's cube timer in c# as suggested by me for him to practice. This was so terrible....There were lines like:
start.Stop();2 -
Some nice music. (Best OMFG)
And just the happiness of creating.
You need to have that feeling that you cant describe when you are coding to create quality code.
Without it the code is pretty ok its just not 100% but about 90%. -
My senior and I started pair programming to improve my code quality. He likes it and I find it fun (and convenient that he helps me) but it feels like I'm making him do my work. I also fear that I am too horrible to be trusted with code alone but if that was the case they would kick me out right?5
-
One of my TL said to me during code review that place a break statement after return statement in switch case.
Being with a bar leader can certainly degrade your code quality.10 -
Introducing the unified standard of quality measurement.
WTFs/Minute
is a new standard coming from code reviews, which also applies to movies, porn, women, ....
what's your opinion ?2 -
Company is about to get certified to ISO 9001:
Kick-off meeting with consultant announced weeks ago, mandatory for all employees.
Everyone is kind of joking about it, but also looking forward to certain workflows maybe changing to the better.
Two hours before meeting, told by CTO not to attend.
Some code I hadn't touched for half a year needs urgent patching to make the equipment pass EMC test (doing so within a few hours would help us save the lab cost for another day of testing).
When they applied RF noise to the bus lines, the CAN peripheral would glitch and need reset, this should happen covertly the first few times without raising any error to the user, so they could just finish the testing without being disturbed by the error - and the EMC lab will not test the functionality of the device after all.
The irony when you were actually supposed to learn about quality that day...1 -
I'm raging all over the place at the moment. I've just inherited possibly the worst PHP project (Codeigniter) in 10 years.
Apart from the fact that the previous developer has created 87 different header and footer files (same content, but each screen has different footer file for some reason, i.e. footer-login.php, header-login.php, footer-profile.php, header-profile.php etc.), he seems to like adding the following comment all over the place: "Released under MIT license: http://opensource.org/licenses/..." to some how protect is shitty code. I mean take a look at the below of some high quality,propriety Jquery he's written, under MIT.4 -
I was mentoring a group of students and helping them with their graduation project. I taught them NodeJS, MongoDB & few other things.
One time, one of them came to show me her code, and it has the weirdest and most bizarre structure ever!
I asked her, “who told you to structure your code like that? This is wrong! I didn’t teach you this way!”.
She replies: “<<a local shitty tech startup name>>’s CTO”
When I searched about him, he’s a civil engineer who founded a startup and assigned himself as CTO with no technical background or knowledge whatsoever! FFS students believe that he’s a real CTO and started learning from him 😑 His code was so bad in every way that a fresh would write a better code!5 -
I've found a job as a junior developer several months ago, but I really want to find another job...
I know, my knowledge and skills aren't superior yet, but I am tired of that feeling of being useless.. I constantly self-educate myself after work and university, but still, I often need to ask co-workers "where's this form?", "wtf is that", "how do I access this"... Plus, their projects are HUGE, but no matter how big the project is, there are 2 to 4 people working on each at a time. And 1 person may work on 2-3 projects. And we are usually late for deadlines :/
Also code quality is meh..
Me: Why do we implement it here?
Co-worker: oh, we don't actually use it, it's just to hide warnings and pass the test.
Holy shit, wtf, I've spent half day trying to figure out wtf is this and why is it not working :/4 -
Code review?......... what's that?
Joke apart, We literally don't do that in my workplace, only few people care about code quality and what they are pushing to production3 -
I don't have anything to say about getting a dev job in some company. But I can give some tips on attracting clients for your freelance work.
* Have a few projects of your own hosted on Github to show off your quality code.
* Contribute to others' open source projects if possible.
* Get yourself a nice website and showcase all your work.
* Ask your current clients to write testimonials on your work and post it in your website.
* Be nice to your clients. Chances are they'll refer you to their friends and family.
That's pretty much all I've done and I get more freelance dev requests than I could take. -
Just going through some old code from git repo's and code examples and I have a message to every dev out there after seeing some of the code quality...
Never... ever... ever fucking give variables with names like vx, tr and sq.
Give your variables names that explain what they are, it is so fucking hard trying to follow code that has 2 letter variable names and there is a special place in hell for you :-)3 -
So I got this new job as Java developer, the people are really great but is the kind of companies that only takes care for fast results and not for code quality.
Because this I have to deal with libraries updated 4 years ago, classes with 8000 lines, methods with 500 lines, a WHOLE lot of work arounds because there is no time to really fix the issue unless it affects directly the customer (something not working or being really slow) aaand we use fucking svn.
Some of this practice's they know and encourage it (+1000 lines classes for example) and every time I try to talk about good practices in the code everyone seems so interested but there is always no time.
Sooo I will stay here for at least two years, I hope I can make a change for good in their code smells.3 -
So... the company I work started a selective process to hire some interns. Since we had a lot of applications and little time, they created a simple test with coding, theory and interpretation questions (9 questions in total) to filter the best candidates then focus on the better ones.
One of the questions (the only one the candidate would actually code) was asking to write a simple FizzBuzz function. The idea was to check the quality of the code and clever/creative ways to solve the problem.
Turns out ONE of the candidates were able to write the function. So now, this question is not being used to evaluate the quality of the code; instead, it's being used to check if the candidate knows how to code at all.
Such disappointment...
-----
PS.:
The idea to put this question on the test was heavily based on the arguments of this video: https://youtube.com/watch/...
:)2 -
I hate those morons who do QA by simply clicking around. You are a disgrace to people like me who like to code and still enjoy doing testing.
Get a life you fuckers. You are the sole reason why many people in industry thinks that QA is something anybody can do.
Yes, I agree you can test the application, but in no way you could ensure the quality of the product.4 -
When I was about 10, I used to read these magazines with code listings for programs, and the only things I really understood were these text adventures that I imagined to be of Zork-like quality (gasp!). In reality, it was more like the choose-your-own adventure books of the time (which were actually pretty cool, and had pretty tight memory management). At one time, on a vacation somewhere in the eighties, I got tired of playing in the river with my friends and instead opted to continue writing lines of BASIC in a little paper notebook, inside my parents' car (at 34 degrees C), trying to perfect a storyline about my little brother and his pet dog he got for his most recent birthday, fighting the cat empire etcetera etcetera. Weird looks, good times.
-
Oh great...
I am slowly beginning to realize that my boss/manager doesn't care about refactoring at all. He cares about features and resolved tickets and thats why the code is a pile of spaghetti filled with hacks to fit every clients desires.
Also all of my coworkers work for themselves, ticket by ticket, either because they just don't care or because they are so frustrated that they don't care anymore. And here I am, an intern, and they expect me to cope with this deformed clutter of legacy designs, buried under hacks and workarounds, while implementing some new feature which in the end I have to put on top of everything else because nothing of that codebase can be reused. Fucking shit, fucking irresponsible managers who dont think about the quality of their product. -
Was going through old photos from university time and...I present to you the result of deadline + lack of sleep + boredom + shitty university project because somebody decided that CS folks needed to learn webdev in old ASP.NET.
Yes that is one query. I wrote the entire thing out as a string in my C# program in one go and tested it by running it from the program. Must've worked properly because I got them grades so eh. I recall I had one nested seven levels too (this is just 5) but I can't find a photo of it. These two queries did all the business logic. Yeah.
Apologies for the poor quality photo of the screen, I don't have the code so no screenshot, this is just from my photos archive5 -
During 6 months I updated myself day and night on java, springboot and AWS.
I failed most of the technical interviews on my preferred stack, however I got a job, where the probable stack is C#, dotnet and Azure.
So, I have a couple of weeks of very good quality rant ahead.
I just started.
hmmm let's see, should I use Visual Studio or Visual Studio CODE. I spent the morning before understanding they were different. I could have spent the morning Studying how To Visually fuck you, lame name chooser.
Now I'm following a tutorial.
I need .NET 5.0, but guess what, I have .NET core 3.1.
But wait, fuck, .NET and .NET CORE are not the same thing! Will .net core 3.1 work for a .NET project or not?
And there goes the afternoon. Is he the same guy who choose the names?
I'll tie you with a barbed wire net and fuck you to the core, you asshole7 -
I'm a junior dev, been on placement a year.
I get tasks done mostly on time, my pull requests are merged, yet I still feel like what I'm writing is seriously under quality.
What point will I stop writing code that isn't good enough to not be stressed about? 😷7 -
I have a co-worker that reports problems by saying "this is broken" or "your change looks bad" and nothing else. There's no recognition for hard work on my team in general, but this guy is a gadfly minus the Socratic benefits.
Did you improve code quality across the project? He'll complain about a function you wrote because he doesn't like how it looks in the code when called.
Did you go out and meet stakeholders so you can learn what your team is supposed to have in the way of milestones and a timeline? He'll complain that it's all impossible and offer no alternatives, solutions or really any new context.
Did you follow your designer's advice on how to handle a corner case in your software? He'll chastise the fact you committed the code to do it in the next meeting because of how bad it looks.
Did you catch him doing one of the things he complains about? He'll complain about you holding up the pull request when we all have to keep moving.
Are you trying to get a task-related question answered in a meeting? He'll interject a sudden argument about code and how easy it is... when he thinks you'll be the one to do it. Very quiet when no one's name is on it, or his name is on it.
Any advice on how to handle guys like this?7 -
So this post by @Cyanide had me wondering, what does it take to be a senior developer, and what makes one more senior than the other?
You see, I started at my current company about three or four years ago. It was my first job, and I got it before even having started any real programming education. I'd say that at this point I was beyond doubt a junior. The thing is that the team I joined consisted of me and my colleague, who was only working 50%. Together we built a brand new system which today is the basis on which the company stands on.
Today I'm responsible for a bunch of consultants, handle contact during partnerships with other companies, and lead a lot of development work. I'm basically doing the exact same things as my colleague, and also security and server management. So except for the fact that he's significantly older than me the only things that I can think of that differentiates the seniority in the team are experience and code quality.
In terms of experience a longer life obviously means more opportunities to gather experiences. The thing is that my colleague seems to be very experienced in 10 year old technologies, but the current stuff is not his strong side. That leaves code quality, and if you've ever read my previous rants I think you know what I'm thinking...
So what in the world makes a person senior? If we hired a new colleague now I'm not sure it'd be instantly clear who should guide and teach them.8 -
I need guidance about my current situation.
I am perfectionist believing in OOP, preventing memory leak in advance, following clean code, best practices, constantly learning about new libraries to reduce custom implementation & improve efficiency.
So even a single bad variable name can trigger my nerves.
I am currently working in a half billion $ IT service company on a maintenance project of 8 year old Android app of security domain product of 1 of the top enterprise company of the world, which sold it to the many leading companies in the world in Govt service, banking, insurance sectors.
It's code quality is such a bad that I get panic attacks & nightmares daily.
Issues are like
- No apk obfuscation, source's everything is openbook, anybody can just unzip apk & open it in Android Studio to see the source.
- logs everywhere about method name invoked,
- static IV & salt for encryption.
- thousands of line code in God classes.
- Irrelevant method names compared to it's functionality.
- Even single item having list takes 2-3 seconds to load
- Lag in navigation between different features' screens.
- For even single thing like different dimension values for different density whole 100+ lines separate layout files for 6 types of densities are written.
- No modularized packages, every class is in single package & there are around 100+ classes.
Owner of the code, my team lead, is too terrified to change even single thing as he don't have coding maturity & no understanding of memory leak, clean code, OOP, in short typical IT 'service' company mentality.
Client is ill-informed or cost-cutting centric so no code review done by them in 8 years.
Feeling much frustrated as I can see it's like a bomb is waiting to blast anytime when some blackhat cracker will take advantage of this.
Need suggestions about this to tackle the situation.10 -
So just saw an email from our team's vice manager about need to improve code quality by using some new system.
Well that set me off on a huge rant about all the issues I see in my team and what exactly needs to change... (just some new sytem he's pushing isnt going to help)
wonder if i might get fired... even though i m right...
And so much for my plan to update docs... I've forgot what I wanted to do...2 -
For the first time apart from Data Structures and Algorithms, there was a Machine Coding round where they asked me to create a small app using any language without data persistence or GUI, to see my code designing ability, LLD, code quality, whether I can implement OOP and write modular code and to see how extensible my code will be.
I did well.2 -
How seriously do you take TDD, CI/CD, automated testing, clean commits, good architecture, Agile, low coupling/high cohesion, etc ... ?
How much time do you invest in those things if you have a deadline up ahead?
Have you seen these things being valued or disregarded at the previous companies you worked for?17 -
Worst experience?
Fourth semester. Programming project.
We were 4 persons, I did almost all the work (including fixing the stuff they broke) but that's not the point.
One of them somehow killed our git repo at least once per weak. It was really annoying, because I had to fix it.
Also he named *all* of his commits 'Pfuschpush' (Pfusch is German for botch). And the code had exactly this quality. I often had to rewrite everything he did (or simply revert the commit).1 -
Spent 2 days refactoring code written by our "offshore team". I've done refactoring on the same code in the past, probably upto about a week in total of refactoring now. The code looked like it was written by someone who had literally just finished their first "Hello World" app - loads of code blocks copied and pasted instead of declaring reusable functions.
The whole thing should have been done by us in the first place.
And yet our money-conscious company wants to employ more of these developers. Cheaper than us? Sure. Quantity over quality though, but I guess money is all that matters to the big cheese1 -
...is that someone who finds some, let's say, questionable quality code that I've written in previous roles, finds me again and calls me out on it...
-
Fuck my project manager. He wants to sacrifice code quality, test coverage and technical debt in favor of more features. In the future when everything takes longer or breaks guess who is responsible? Certainly not him.3
-
That feeling when the code in a massive PR is of very high quality... Only comment is about some class name...1
-
> do you feel sorry for freelancing contractors
> whose previous client abandoned them
> they ask you to help them fix some trivial bugs in the shitty code
> you believe you can change the world by going overboard by also improving the code quality, along with fixing the bugs
> initialize an empty file where you'll translate the shitty code into a more organized one
> start creating variables and generic functions which can be used in a modular and organized fashion
> meticulously document the first function you write
> realize this is not worth your time
> insert some glue code into the original code which fixes the trivial bugs
> glue code has hard coded values so it adds to the shittiness of the code
> submit the work
> get $$$ -
What do you think of pair programming?
Does it automatically allow for (much) higher quality code?
Is there truth and practicality in it?
Have you applied this in your company?
I think it's a bit of a dogma and its benefits depend on whom you're working with. Sometimes two incompatible people will waste each other's time, or a person who works much better alone will instead work in a worse manner.
I know for a fact there are colleagues (including myself) who can't stand it when someone else is looking at their screen.
source:
http://extremeprogramming.org/rules...14 -
A client asked for a tool for his website. So I built it for him and he was satisfied with the thing, cause it did what it should. Nevertheless I was not, because it kind of had a messy backend. I made it working and charged my time. Now I am wondering if I should rebuild the thing to satisfy my code quality for free, or just keep that thing as ugly as it is....
What your opinion on this?6 -
My colleague told me today that companies with shit code quality, complete chaos, no tests of QA of any kind, and poor security practices still make loads of money and are extremely successful so it's all a waste of time.
I detest this idea and I refuse to work like that anymore. But I also think he's right :(8 -
One day a week should be for improving the quality of the code, not just bugfixing and rushed implementation of new features.
-
!rant
when you find 3 spelling errors in the same line of code and realize that these are legit 'cause the objects and methods are actually coded misspelled.
That's when no one dare doing code review but simply it builds and its fine.
Luckily #NotMyCode -
Commit functional changes separately to code quality changes
Otherwise I'll make you do it all over again 😤 -
Python ecosystem drives me nuts!
Not the language tho, i kinda like it, and some features are damn straight awesome.
But ecosystem... man!
The way ppl write code in it, the lack of documentation (or in quality of it)...
I recently wanted to check how library does one thing (debug purposes), and not only i had to track some method up 3 classes, the other method i hunted only by signature and still i have no idea how it ends up being accessible where it should...
"Explicit is better than implicit" my ass...
Also dev managed to make the code very unreadable. In Python. Language with such strong opinions about code formatting. HOW ?!!
And the worst part is, it wasn't that big of a library and didn't really need the full freaking Enterprise OOP treatment with layers over layers of generally named classes and fucked up architecture.
FUCK THAT LIB, FUCK THAT DEV, FUCK IT ALL !!!
PS.
Project seems to be abandoned for a year or two, so there is hardly an option to fix things with the author sadly :(3 -
Recently, I failed a lot. Most of them were interviews. Some failed at code challenge. Some of them were leet code type challenge. Some failed at less quality vs other people. Used to be ashamed or angry. Now able to embrace it. Thanks to jack ma's documentary. Start to integrated his philosophy into life.1
-
If you have no defined business processes whatsoever nor code quality practices, why bother putting on the job offer "software engineer" or "full stack web developer"?
WHAT YOU'RE LOOKING FOR IS A FUCKING PHP HACKER -
I coded part of feature 2 months ago.
Left it to help frontend guy a bit, deal with fire after release. ( we’re missing frontend integration tests and every release is pain in the ass ).
My backend code coverage is about 80% so not much can go wrong at this point.
So I added more code today and it looks like new feature is working but don’t know what the code I added 2 months ago exactly do.
The only thing I know is that it definitely needs refactoring ...
Being only backend dev / release manager / administrator/ dev ops in project is painful I need to deal with everything on my own 😔
At least client doesn’t care if it’s done in one week or in one month right now.1 -
Start the reading of "clean code".
First thing that i have learn "The only valid measurement of code quality: WTFs/minutes".
What do you think about it ? Agree or not ? -
I used to love my job, the guy that looked forward to mondays, there was always something new to learn, I was passionate about clean code and learning new languages like Elixir. As a software engineer I thought my occupation had a special significance in this world, I saw possibility and potential of creating something so impactful on the world that it would become my legacy.
Now after 5 years I’m realising that none of this stuff really matters to the world, software engineers aren’t special and it’s evident from our salaries how valuable we are compared to other professions in sales, medicine or law. My friend who works as in customer success management makes more than me.
While some of us will be in the lucky few whose work will change the world, most of us will just be another cog in the wheel, all that matters is how many product/features you ship out, nobody gives a shit about code quality, concurrency and architecture design other than us6 -
Following my first rant, my boss had the brilliant idea of running the old and the new architecture in parallel. I had advised that it won’t be ideal since the same Scala code was ingesting into 2 different Kinesis streams and one was running an old KCL written in Java where as other was consumed by a Firehose delivery stream(eventually we will be ingesting it into Firehose directly). I had told few manual + automated tests on Code as well as from a functionality of the new architecture and a set of tests for checking the integration of the new Producer code with Consumer.
The statement I got from my boss was “This is the test, we test it on production in parallel”. My boss had a brilliant idea to fucking test the new code on the production directly but running them in parallel without accounting for undefined behaviour it might cause in the current production system. I mean my boss should get a Nobel peace prize for shattering our mental peace.
Anywho, we started the deployment today at 5AM in the morning. I had all the aws services deployed. Was just waiting to deploy the new Collector code which we did at 5AM. Immediately after 5 minutes the system went bonkers, there was fire, blood, demons and I was smoking a cigarette with the biggest “I told you so smile” on my face. I’ve just written an email to my boss and have told him calmly that “Listen motherfucker, 90 percent of the software companies aren’t idiots to focus on testing and quality. We need to start spending time on testing and quality else we’ll again be in the same soup after few weeks again”.waiting for his reply1 -
If the codebase quality drops below levels measurable by way of "WTFs per minute", determine further negative code quality by counting the amount of times per hour you wonder if you're in Hell and what exactly you did to deserve this torment
-
This climate crisis is slowly getting into my head guys😠. The shit bolsanaro and all other govs are doing is effecting my mojo.
I am working here and trying to do my best to deliver quality code while i must fight the feeling that ppl are betraying me (the govs). Its not my job to remind them of not fucking us over. I try to help by not becoming a criminal and getting forward with my life. Wtf is wrong with those in charge of govs?! On any project if you ignore the signs, u'll end up in refactoring hell or the project just dies. Getting out takes serious commitment.
Is everyone just gone crazy?
Here we all will get fucked, if we fail with project earth. 🤬😖👿16 -
*News for the users here that deal with web hosting here*
Hey there anyone that vaguely remembers me, so have been busy with my network lately dont have much time to get back here, I dont know if someone has already reported this new, I found it while I was scooting for news to share on my site (shameless plug: https://legionfront.me/pages/news)
Its about our loved /s and highly used Wordpress and its lovely code /ss
https://thehackernews.com/2018/02/...
Short story short if, there is an exploit (of the many) to DDoS a network of worpress sites that has been present since almost literally forever, the code to fix it is in the articleundefined wordpress shilling ddos end my life immediately news security legion code quality legion frontier8 -
I read this rant on Quora. Is this true ?
“The IT industry has devolved into a gigantic ponzi scam built on exploitation and BS. Quality of solution and quality of work was replaced with a ‘Does it work now?’ approach with zero contingency.
And the fact that geeks and nerds are naive only helps the white collar crooks to exploit them as code monkeys.”12 -
generally, the quality of code is inversely proportional to the number of public booleans
thing.IsThatTypeOfThing
thing.IsAVerySpecificTypeOfThatThing
thing.CanDoSomething
thing.EnableSomething
apparently that's where we're heading now :/ -
I've realized that what I once thought of as a glamorous job is really no different than any other. Speed and quantity is praised over quality and adoration is never received. Prestige is as much dependent on who you know than your code.
Maybe I'm just jaded.1 -
!rant
I've always been wondering why do tech companies need everyone to have a strong grasp of algos and data structures?
I've been coding most of my life but didn't get a CS degree so ended up in IT but I kind of want to get into a tech company as my thinking is the quality of code much higher (I spend a lot of time cleaning up other people's code and prod issues over the years...), I've been learning Algo/DS but when I see those technical questions on CareerCup, I go WTF.... it's this the kind of problems you guys do every day?6 -
Fixed a high priority bug today just prior to release. There was 100% test coverage. The tests pass both before and after the change. The product behavior is correct now where it wasn't before. Just one more reminder that test coverage does not equate to either quality or correctness. Tests are alarms (at best), and quality of tests are no better an any chunk of code. All tests have costs, but not all have value. All reasons why I am skeptical of the value of code coverage, TDD, or anything that posits that "all tests are good".6
-
- finish that ML course I started back in June 2017
- get more experience from my job
- improve my code quality even better.
- build some cool project in Java ( there's this company I need to impress, but I haven't found any good idea to implemen 😣)
- be more active on Hackerrank
- do some stuff here and there
- use that freaking LinkedIn to create some meaningful connections
- contribute to an open source project
Hmmm ...
... yeah that's a lot ... *sigh*7 -
The cool feeling when you see your static analyzer that compare previous version and future release and code quality is improved.
At the same time the bad feeling because you was the same dev that made the previous version. -
I felt so good after revisiting a project and everything runs ok
Code readable
Managed to pick off where I left off and fixed some existing bugs
Added new features and uploaded the update2 -
Them: Maintaing code quality is a vital part of our team culture!
Me: Really, how important? Can a feature slip to facilitate necessary refactoring?
Them: Well no. We've made a commitment to the client.
Me: So, code quality is not very important then is it... -
!rant
So this has probably been asked loads of times but I've never seen it. When working on solo projects for yourself do you still use source control like git or mercurial?
I usually don't because when I do personal projects its usually filthy and fast development to prototype quickly.
However, this current project I'm working on I am using git and I'm finding that slowing myself down just to follow good practice is actually improving my code quality and my understanding of my own project.14 -
Quality != more work + less talk
Quality = more talk resulting in less work.
That makes no sense mathematically.
“Let’s talk more about shit before we create shit”.
That’s a little better.
“Let’s talk more so we don’t create shit”.
Getting closer.
“Let’s talk more about what is needed till we all know what is best before we program a damn machine?”
...This is going nowhere fast.
Okay fuck it. Let’s just code some stuff. It’s more enjoyable.7 -
My app is finally on the Apple App Store.
The rant: how bloody difficult was it to get on there?! They scrutinise EVERYTHING. My promo copy, my screengrabs and also it seems that there is code that works on iPhone that doesn’t work on iPad.
I thought it was designed to be the same for ease of development? However I found a function that works perfectly well on iPhone but breaks iPad.
Anyway I guess in the long run this keeps the App Store’s quality level high and it isn’t the Wild West like the google play store. However it’s still pretty annoying. I can see why devs get angry about Apple’s process.2 -
Wk33:
Best experience of 2016 is probably just realising I'm a pretty good programmer. I have a physics undergraduate degree and a 1 year masters in CS, I'm working on back end algorithm stuff so pretty mathsy at times, but I've found from working with others that I write good quality code. I've still got lots to learn but I've got a solid foundation, am reading, learning and coding outside of work.
Worst experience of 2016 is working with people for whom it's purely a day job, only about the money, get things done in whatever hacky way works.10 -
Teach students the importance of clean code/architecture and testing. Even if they dont yet understand the more complex topics such as architecture, they should understand why quality is important and that software is a craft more than a science. You cant just apply principle X and insert design pattern Y and profit++. You actually have to think and constantly improve. AND TEST.
Think I would probably also cover things like build automation and continuous delivery. These are now important things for junior devs to know about going into companies. -
We have all experienced inheriting a project and crying because of quality of coding. Somehow the project works but you can't explain how.
I guess I will not blame the previous developer. I guess in most cases it's the teacher who teaches that horrible method of coding.
I may be a self taught developer. But I can gladly say that I know how to code. However I can't say the same about my professor. Who makes you add percentage based margins and paddings (CSS) And make a fluid layout calling it responsive.
Fuck you Professor.1 -
I was thinking about the problems one of our clients faced with the launch of their project the other day, because things were rushed, stuff was omitted and in the end they could not meet the launch date, and I started making a list of hard lessons I learned over the years that would have helped them avoid this situation.
Feel free to add yours in the comments.
- Never deploy on Friday
- Never make infrastructure changes right before a launch
- Always have backups. Always!
- Version control is never optional
- A missed deadline is better than a failed launch
- If everything is urgent, nothing is important
- Fast and cheap, cheap and quality, quality and fast. Only one pair at a time can be achieved
- Never rush the start or the end of a project
- Stability is always better that speed
- Make technical decisions based on the needs of the project two years from now
- Code like you will be the only maintainor of the project two years from now. You probably will...
- Always test before you deploy
- You can never have too many backups (see above)
- Code without documentation is a tool without instructions
- Free or famous does not necessarily mean useful or good
- If you need multiple sentences to explain a method, you should probably refactor
- If your logic is checked beforehand, writing the code becomes way easier
- Never assume you understand a request the first time around. Always follow up and confirm
There are many more that should be on this list, but this is what came to mind now.2 -
The code of conduct is a good thing. It doesn't persecute cis white men. All it does is tell you not to harass people on the basis of traits they cannot control. You say you only care about code quality and nothing else? There's a whole untapped market of talent from women and lgbtq+ people who stay the fuck away because of toxic communities. When you call people faggot it makes them not want to contribute to your codebase.
Linus stepped down of his own volition to try to become a more constructive voice. Heaven forbid the assholes have some introspection.
Hate it because it's vague. Hate it because it means anyone can be banned without evidence. Don't hate it because the assholes are finally being called on their bullshit.12 -
I am still confused why people treat testing as secondary position? Tester are paid less and they hire lower quality engineers. I think testing is as important as any other phase of development, like design or implementation. . . and yeah we do testing of our own code. The only thing I can do in my case is to see that people who change my code may not break basic functionalities. And again about edge cases, try to handle some other left to be seen in production( those which I could not think of due to lack of time) I take care not to leave edge case but sometime cannot do it. I just hope people realise the worth of testing.1
-
everytime i see posts of code humor of doing ordinary things (for example while hungry eat) i wished i was dead.
they are too lazy and beginner. and they exist because the internet gives everyone some chance of exposure.
while this may seem like a positive and democratic thing, it results in too much low quality and everyone's standards getting lowered.
i don't mind people telling bad jokes to friends and family, because at least then even though sometimes people laugh, a frown will surely happen.
while in the internet, you don't get that reaction. In fact, the shittier the thing you post, the more points you get!
this is my version expressing how i feel about the matter:
while !is_dead()
eat_excrement_from(corpse)
bile_and_shit = vomit()
eat(bile_and_shit)
while it is true that most things online are garbage, that also means that some isn't.
for example, code-poetry.com has very clever code poems that actually does run and has some interesting STDOUT. and those do are worthwhile.
let me also do a preemptive comment to the first fucking idiot that posts a "you must be fun at parties". fuck parties and fuck you too.1 -
dev: ugh we need to set and implement coding standards
same dev: no I don't need to follow what you just said, it's already clean and readable (it's not) -
I just submitted my professional goals this year.
As I was writing them a lot of them actually sound like things my manager should be doing to increase code quality n agility n reduce the # bugs that end up in prod... -
Reading code takes time!
Everytime I read:
"var" or "auto" Add: 10s
- Just use the type
Everytime I read:
if(Expression1 && Expression() ? GetNumber() : 0 > 0) Add: 30s
- Just write two if statements or create two bools the line above.
Everytime I read:
delegate = () => {} Add another 5 minutes of reading time.
- Just write a separate function for it. It helps with searching and understand what it does
Please code like the person that needs to check your code or change it just knows basic coding skills and logics.
I do know all these concepts I just never use them because it makes the code unreadable. hard to follow, mistakes that can happen everywhere. difficult to search.
And it frustrates that I need to read 10 extra lines to understand code flow or hover my mouse in an IDE to figure out what type object it is.
It's properly just me... I just like clean readable code. that is logical and failsafe and strict and deterministic with its behavior9 -
I love how our industry has invented such important sounding yet meaningless job titles...
Developer, software engineer, software architect, developer evangelist, dev ops engineer, systems analyst, quality assurance engineer, code monkey...4 -
So we have a confluence page all about best practices (there’s not even a lot in it) but when you check the repository, most rules are not followed 😭4
-
"Whenever there is a decline in quality of code and rise of bugs and errors oh dear coder, I manifest to show the path of bug and error free coding" said code-god
- Chapter 1 Verse 1, Code Gita -
So in our last retros some of my colleagues suggested to (forced) limit the number of lines per method in order to "maximize our code quality".
In the one hand I can see the benefits of this, such as easier testability when having more sperate testable blocks of logic.
But on the other side their code contains lots of such one or two lines private methods which get most of the cases not more than one time called. (And which I then can't even test separately)
I don't understand how this should help...
Is this really a thing? Am I just not "clean" enough?
(it's c# btw)3 -
I want to code something today but don't want to get into it then have visitors show up.... Now I'm downloading Christmas music (FLAC in highest quality possible of course) and just browsing reddit.2
-
I was watching this fantastic talk on coding through refactoring:
https://m.youtube.com/watch/...
Highly recommended....
And it got me all enthusiastic about coding again and then I realised, at my last work place, the "we value code quality" corporate hellhole you'd be criticised for taking too long by management and for changing too much code by coworkers.
And a month later, you'd come back to the code and some other coworker would have jammed in a bunch of extra if statements and absolutely fucked your nice structure....1 -
Damnit onion, this is a little on the nose. But hey, code complete is always worth reading.
https://theonion.com/hopefully-neig... -
Over the last few weeks, I've learned two things about the head of my division:
1. They "don't care about code quality"
2. They want to try a "low-code" approach for the web frontend of a completely custom piece of what is currently desktop software
This is despite the fact that we have three full time developers with a wide range of both front and back end skills on the payroll, a deep library of existing components for various frontend frameworks, a custom CSS library, and a decent deployment pipeline for frontend code.
But sure, let's try low-code. Let's see how far that gets us. -
I wanted to deploy the code of the project I'm working on on the test server to try something.
The code wasn't deployed because the automatic quality inspector detected some methods used are deprecated. So I check the documentation of the methods used. The method is a pass-by to avoid some errors launched by the automatic quality inspector.
So the quality inspector stopped my deployment because I used something that should stop the quality inspector provoking errors.
god dammit5 -
One thing that is really difficult is when you are writing let's say C code for months, and then you switch to C# or Python, you immediately use C-style logic and forgo the easier, shorter Python syntax!
I did a python kata on the Codewars website. After submitting it, I realized my solution was like 10x longer than every other solution. Talking about hand in face.
Stuck to basics and forgot about Python's amazing shortcuts. What are you going to do!1 -
I'm not too proud of it but.... https://github.com/PythonTryHard/...
It's garbo, especially on code quality but it's my coolest piece of garbo9 -
Performing code review for design quality.
So you return HTTP code 200 for 'ok'. So what do you return when things are not 'ok'?
Obviously something that's not 200. Like 300 (The message with the code was literally "not okay").1 -
Someone has to start manufacturing quality HUD glasses...
Imagine the possibilities and comfort...
no more neckpain from crouching above your laptop/tablet/smartphone, imagine the navigation systems, imagine you could read messages, articles, code, watch videos whatever you are doing, even work on your code with some kind of keyboard (or with speech recognition)
I want this soo bad..3 -
In my current job, I was let go of the project I was handling for almost two years in place for a new hire with less experience. The reason is that I got complacent while sacrificing code quality as more similar tasks were assigned. I'm glad it happened and grateful for all the code practices I've learned. Transferring to a new project with the same client though. 😂1
-
We only recently started and we can really see the benefits of code review.
It motivates you to follow the standards, writing good quality code and using variable/function names that makes sense. Especially that you know someone is going to read through it.2 -
Have you met any Brazilian developer onshore/offshore and how was your experience in terms of code quality, team play, others?11
-
My coworker had to face this one: When SonarQube shows you 50 years of technical debt within 1.5 million lines of code from someone else and you have to fix the worst.
#FeatureDrivenDevelopment -
If there's one thing I hate about devs is definitely when they get too emotional about the reviews they receive.
Doing a thorough review always takes significant amount of time and energy. It's about ensuring high quality of code, about functionality and best practices, ... It's also about learning: I learn from the changes being reviewed while at the same time I also try to teach the author as much as possible, giving down to earth opinions.
It's never (or at least should never be) about attacking the author. There really is no reason why someone would spend all this time getting overly personal.
I used to start my responses with (lousy) apologies for being "harsh", but stopped doing this now that my team understands all of this. It also helped asking them to do the same with my changes. The look in their eyes when they find something is simply invaluable :).2 -
Program seems to work better when there is about 2-3 times the amount of code related to error handling the task than just the task. I'm always glad to see quality stuff that accounts for the edge cases especially with helpful error messages.1
-
How do you usually divide the commits?
I'm a student and I would like to know your coding preferences at both work and your personal projects. Do you prefer to commit almost fully coded classes or you just rapid-fire all the functions you finished?8 -
Does the perfect codebase exist? Or is it just a myth?
PS. I'm just a new grad with ~3 years of experience, and in my 4th company now.11 -
I am just student looking for job, and got this pre interview test:
Develop an Android or iOS app with login and password input field, download button, place for image we prvided.
... reading further:
What we are looking for in the code ?
internal quality:
-consistent formatting of the source code
-clean, robust code without smells
-consistent abstractions and logical overall structure
-no cyclic dependencies
-code organized in meaningful layers
-low coupling and high cohesion
-descriptive and intention-revealing names of packages, classes, methods etc.
-single small functions that do one thing
-truly object-oriented design with proper encapsulation, sticking to DRY and SOLID principles, without procedural anti-patterns
-lots of bonus points for advanced techniques like design patterns, dependency injection, design by contract and especially unit (or even functional or integration) tests
external quality:
-the app should be fully functional, with every state, user input, boundary condition etc. taken care of (although this app is indeed very small, treat it as a part of big production-ready project)
-the app should correctly handle screen orientation changes, device resources and permissions, incoming calls, network connection issues, being pushed to the background, signing deal with the devil :D and other platform intricacies and should recover from these events gracefully
-lowest API level is not defined - use what you think is reasonable in these days
-bonus points if the app interacts with the user in an informative and helpful way
-bonus points for nice looks - use a clean, simple yet effective layout and design
... I mean really ? and they give me like 2 days ?4 -
We have decent linting on our codebase which covers off code quality and style.
We also have a developer who insists on making code reviews about formatting and spacing rather than functionality even tho we've tried in multiple ways to say:
- our linting covers it, if that's happy we should be (and the rest of the team is)
- it's a waste of time doing it
- it wastes the time of the team reading it
- the noise it generates makes it hard to see any legit comments
I swear to god if I see another comment saying "new line" i will scream. -
I just found a class in the codebase which was named "Ariadne". Coz it was responsible for holding the information of where you are on the site wrt the homepage. Talk about giving meaningful names. There was no other documentation whatsoever. You know you've serious code quality issues when you expect fellow developers to know entire stories from Greek mythology to understand the code.1
-
"Always program as if someone who has to work with your code is a violent psychopath who knows where you live."
-
!rant
So I'm making the system for my University's cafeteria.
Pretty ez and all but THIS FUCKING PAGE, THIS GOD FORSAKEN PAGE JUST BUGS.
I'll elaborate: Basically I have a bunch of pages that bring up some pie charts and a .pdf of earnings, all of them work and they are pretty much cookie cutter so I can re-use the code. But this random one, with the same code, repeats the same entry a couple of times.
And by god have I tried to change every variable, code format and minimal shit. Still doesn't budge.
Guess I'll have a cheeky ciggy break and try to fix it later when I'm not steaming my noggin
Ps: yeah yeah, shitty jpg quality but its the "Busca Unidade" field that just cloned itself 7 more times underneath -
Found this in a book and i can tell you that wtfs/min is the most effective code quality measurement technique programmers have known to this day! xD
(Book: Clean code Robert C.Martin)4 -
The key to any good relationship is compromise. Ladies and Gentlemen, allow me to introduce the 2-4-tab alternating space indent style!
if (x) {
somemethod();
}
else if (y)
{
someOtherMethod();
} else {
iDontKnowHowToTabOnAndroidMethod();
}5 -
Continuos Integration and Code Quality Systems should work automatically...fucking Jenkins need me all the time. Arrrgh!😠
-
I cannot write my shopping list on paper anymore. I'm unable to sort it alphabetically, refactor it, group the items by theme...
-
!rant about WordPress
I came across a rant about WordPress this morning. Whatever the quality of the code, there is a lot of good that has come from WordPress.
For a substantial number of people, it has made it possible for them to create their own spaces on the Web that they can use to express themselves, build businesses, and share their lives.
Remember that WordPress arrived at a time when you basically had to use a few large blog services if you wanted your own site. It wasn't perfect then (and isn't now) but WordPress did a lot to democratize the Web.1 -
# Start a new job
## find out, on the first day, that the position you applied (data science)..simply doesn't exists
##find out that the environment is really stressfull and not pleasing as it was depicted during interviews
## quickly find an alternative to quit current job
#Start a third new job (3 months after quitting the first one)
##find out, on the first month, that the code quality is below zero.
###there are no unit tests.
### there is no possibility to create a unit test because the code doesnt folloe any pattern.
###there is no division between backend and frontend.
###there is no division between business logic and db in the backend.
###there is no division between frontend, business logic, and db
###find out that they deliberally built a framework to get frontend and backend togheter
###the project is built over maven, but there are no poms wellformed
###the project is approx 300k java lines....
##lose hope and start to find a new job....1 -
Fuck Swift. Such a garbage language. The last 3 days I tried multiple web server implemented in Swift for mocking API's and none of them worked. Old, not maintained, wrong documentation, wrong code examples and just low quality shit.
Finally I decided to not give a crap and move to use Wiremock and it works out of the box, start and configuration is a breeze and it just plainly works. I should have done that from the beginning.
Btw., as a warning these were the frameworks I used and you should avoid them if possible: Swifter, Embassy, Ambassador and Succulent.1 -
I guess it's my third or the fourth company that am currently changing.
I have the will to improve and write better code quality level up. But sometimes i guess i have the lack to find the how to do these stuff and how to practice and who is going to tell me that i have to change these lines of code so you can improve am just in a big mess and i feel so bad about it.
Now i had just received a new warning at my current company that i either improve or i get fired. So i have been searching over google and internet how to improve as well i had just created a new project for the will to practice and become better.
Can someone tell me what i should do?
How to fix everything and let my colleagues gain my trust in my code commits ?
Because literally i feel so bad about everything and you can't imagine how miserable i feel.3 -
It's kind of depressing looking at how bad the source code has transformed from a previous project that I had planned, designed, and did the initial implementation.
But I guess this is the problem of having developers who don't really care about the quality of their work, especially when it comes to PHP. -
I'm an iOS developer and I cringe when I read job specs that require TDD or excessive unit testing. By excessive I mean demanding that unit tests need to written almost everywhere and using line coverage as a measure of success. I have many years of experience developing iOS apps in agencies and startups where I needed to be extremely time efficient while also keeping the code maintainable. And what I've learned is the importance of DRY, YAGNI and KISS over excessive unit testing. Sadly our industry has become obsessed with unit tests. I'm of the opinion that unit tests have their place, but integration and e2e tests have more value and should be prioritised, reserving unit tests for algorithmic code. Pushing for unit tests everywhere in my view is a ginormous waste of time that can't ever be repaid in quality, bug free code. Why? Because leads to making code testable through dependency injection and 'humble object' indirection layers, which increases the LoC and fragments code that would be easier to read over different classes. Add mocks, and together with the tests your LoC and complexity have tripled. 200% code size takes 200% the time to maintain. This time needs to be repaid - all this unit testing needs to save us 200% time in debugging or manual testing, which it doesn't unless you are an absolute rookie who writes the most terrible and buggy code imaginable, but if you're this terrible writing your production code, why should your tests be any better? It seems that especially big corporate shops love unit tests. Maybe they have enough money and resources to pay for all these hours wasted on unit tests. Maybe the developers can point their 10,000 unit tests when something goes wrong and say 'at least we tried'? Or maybe most developers don't know how to think and reason about their code before they type, and unit tests force them to do that?12
-
If you were to work on pure JavaScript code for local and web development, what IDE would you use? Not a quality question, I'm looking for personal opinions mainly.9
-
I think there’s a correlation between my code quality and listening to A Tribe Called Quest. It’s weird. Everything time I put them on I make great code 🤷♂️
-
I took a project. Wild mix of php and html including db stuff and data processing. About 200 files, some 3000+ lines long with if else cases processed in another template/logic behemoth...
I wrote a js file included it at the footer of the monster and update dom + data via ajax on my own api implementation because I'm too afraid to write in any of those files.
I've been told its quality code and well documented3 -
Upper management has a huge meeting and decides NOT to merge in buggy or incomplete or untested code just because it's the due date (you know, quality over quantity? And an attempt to cut back PM's unrealistic expectations)
2 sprints later: "So we're going to go ahead with the merge. Yes, we know the feature isn't complete, but we promised blah blah blah"
So much for that <.<;;1 -
In our class we have one subject where we take notes on one shared Google docs document. To be honest, this may be the worst "teamwork" that I every had to deal with.
• Simply copying the stuff from the blackboard:
• Missing context
• document consists of keywords and occasional sentences
• These fucking deep nested lists
• No quality control whatsoever
--> nobody fucking cares
• What, nobody made notes for this point?
• Any attempt to speak up result in me being scolded
• Be me, the only one not shopping on amazon instead of taking notes
• Wtf does this mean, where's the context
• one line of code without needed context code
No quality, no Motivation, no better alternatives, no fun. -
You can be very good at writing algorithms and good quality code, but if your architecture is garbage, you'll be doing hacky fixes and end up with a spaghetti code.3
-
What's the point of using TypeScript if you type all of your code with `any` or worst part is you don't provide any types!?
P.S
If you're anti-typescript or any static linting tool, I know this will not prevent any runtime errors, but this is part of the testing/code quality. My teammates do not care for quality, and I'm tired of it.2 -
It's frustrating when you tell your teammate after code review that they have to rework their code a bit to capture certain scenarios they've missed and they just scowl at you.
I'm just trying to make it easier for us in the long run! -
Best way to measure code quality is by using wtfps method. Less "what the fu#*s per second" you get, better the code is.
-
!rant
C++ / OOP QUESTION
I have a uni assignment / project (Data Structures class), where I have to implement the ins-n-outs of 1D arrays, by creating a dynamically allocated array class, which can accept any type of data (using templates). But there's a problem.
I'd like to implement sorting the elements of the array. But given the fact, that I'm using templates, I cannot treat the elements as integers, nor as strings, or other types...
Also, let's say that the elements of the array are elements of class T, where T looks like this:
class T {
private:
double height;
int age;
string name;
public:
double getH() { return height; }
int getAge() { return age; }
string getName() { return name; }
};
(It's just a random example, pls don't judge for code quality...)
Let's say that I'd like to sort the T elements based on height, print out, sort by age, print out, then sort by name and print out. How can I do this? Is this possible?5 -
- Lead: we need an iteration of 3 weeks to stabilize our code (bugs, code quality, ...)
- Manager: ok go ahead
- Lead: cool thank
3 weeks later one day before the end of the iteration :
- Manager: are you ready for the demo ?
- Lead: ...
- Manager: I invited the boss and the clients
- Lead: ...
We are discussing what to show them.5 -
Your code quality is pajeet tier.
You consistently make poor design and architectural choices.
Your project has maintained 50 plus unresolved bugs for about 6 months, and yet you're consistently under delivering against what you commit to.
Other developers refuse to work with you.
So tell me again how you feel you're an effective lead developer5 -
What are you supposed to do in an environment where your peers can't take criticism on the code and their approach to problem solving? They like to take shortcuts which end of making the software less maintainable. Is it worth to convince them to use best practices and be labeled as a bad guy who keeps on ranting about stuff they don't understand?2
-
Anyone know any nice code quality tools/bug finders (besides find-bugs) plugins for Intellij IDEA?2
-
Do you know any open-source and free (as in beer) mockup/wireframe tool for webdesign?
I may soon have two websites to build for little businesses, but I'd like to be able to create mockups for approval before diving into the code. As I was looking for tools, I was surprised to find no free and open-source software for the job. Everything is on a free trial model which I'd be glad to pay for if I had the money, but since I'm really just beginning, I'd rather use something free, and preferably open-source.
I'll use Gimp if nothing comes up, but since it's not intended for this kind of usage, it's a bit more time consuming to create something of quality on it.
Thanks a lot.15 -
Some programmer or QA person somewhere in the world is having a moment of great reflection on the subject of thoroughly testing their code. If not that, then on the subject of a super crappy manager who knew better and pushed to production anyway.
“Then in September this year, nearly three years later, he got a letter from Wells Fargo. "Dear Jose Aguilar," it read, "We made a mistake… we're sorry." It said the decision on his loan modification was based "on a faulty calculation" and his loan "should have been" approved.
"It's just like, 'Are you serious? Are you kidding me?' Like they destroyed my kids' life and my life, and now you want me to – 'We're sorry?'"
https://cbsnews.com/news/... -
My team works for a company in another country(Some hours of difference) and we work together we that company's team to develop their product. In the last couple of weeks I've been working with a senior developer of that company that everybody on my team said was a pain in the ass to working with. I didn't want to judge the guy just by others experiences, but man they were right. We're talking about a guy that has years of experience. However he is incapable of retaining any kind of simple business logic or process and leaves incomplete code everywhere (not tested properly and buggy). With the diference in hours, every morning I when I look at the hand off messages and there are multiple questions that he should know better than me(has more time in the project than me) and a lot of code that I have to fix! This guy can't complete simple tasks that could be almost copied and pasted from other parts of code. What gets me even more pissed off is that this guy has a better salary than any person in my team and does a lot less and with poorer quality. And to top it off his company management doesn't acknowledge that he is a problem...
-
Studied applied physics and electro engineering for 3years since I'm a stubborn idiot, went shit. Had my first code course in C and knew that I had to change education. Life quality increased by a factor of 10 for me. And I haven't looked back ever since.
-
!rant
What font size do you normally use for programming?
I've been using 12-14px for years, but I switched to 16px for the last couple of hours. Feels weird but I kinda like it.
Sure, you do lose some real estate but it feels like it's way easier for the eyes. Less physical strain == less mental strain, which in turn makes for higher quality code.
Also, selecting stuff is more satisfying, but that's probably just me since I'm weird ( ͡° ͜ʖ ͡°)
Any thoughts?4 -
I am planing to create a reading list for technical books and am looking for recommendations.
Currently I have:
- Spark: The definitive Guide (need it for a university project)
- Clean Code
- Clean Architecture
- Functional Programming, simplified (or any other beginner-friendly book about FP)
Do you have any recommendations and must-reads for a more junior developer? I am looking for stuff about FP, Code Quality, Java, Python, Scala, and any general interesting technical stuff.3 -
Fuck, I can't stand ppl who brag about learning new languages when they can't produce quality code in their work language, and dont know any other rules than few basic ones that you learn at the beginning of being a programmer. Go kill yourselves, thanks1
-
doing documentation in word and having meetings about it, code reviews where people say great code quality with all good practices but... we would like to do it differently, reasons? less lines of code but real reason is not understanding design patterns, also 6 levels of hierarchy and wasted effort to prove that approach is good and considered as good practice just to be changed by someone who doesn't write code anymore. Decisions that other approach is better because they did it that way 10 years ago on last project where they were developers on totally different tech stack. dear friends, welcome to corporation!1
-
My client wants great quality and time consuming code
And wants to pay least 😧😑
Defaq i still gonna do it but uh...2 -
Spent 30minutes trying to find What was wrong in my Bootstrap code because some things didn't appear on my screen (grey background, lines).
Turns out it was because of the crap quality of my second monitor. -
When doing a project from scratch, what would you prefer?
Code Quality + Time = Product
Bad Code Quality + Les Time = Product7 -
Just a warning to Web Dev's out there. My university has taken to marking our web coursework by "machine marking".
The necessary steps to getting full marks? Upload files with the specified name and extension and voila! No need to worry about code quality or whether it works. Full Marks!
Misspelled a single file name? Straight 0.
Nothing. -
Some magic happened about situation talked in earlier rant at below link.
https://devrant.com/rants/2910513/...
Now magically even before I inform about this situation directly to the client, now after 8 years they used some proprietary static code analyzer on latest app source & found out around 200+ security issues which covers most pain points I told in the above rant.
I also found out that there is a list of 100+ vulnerabilities documented in client doc repo, which were pending since around 5-6 years.
Now I have to work along my junior to fix these both kind of issues.
Suddenly dull maintenance project became much challenging & interesting. :-) -
Oh I just gotta love how low quality selenium is. Gotta love the fact that sometimes you need to commit your code 5 times before selenium tests do not fail completely randomly and the whole commit is rollbacked. Like I don't fucking have other shit to do other than wait for these retarded tests to finish just to expect that with 90% probability they are going to fail because selenium is a huge pile of poop when it comes to UI tests. Also testers do not seem to give a single fuck since they just keep writing more of those instead of making old test more stable, fucking awesome.
-
Test your code. Take extra time to do self-review. It'll improve your code quality and position within your peers.
When you enter that "minor change-trial-error" phase. Go to sleep or take a long break. You're loosing time and adding more work to be reviewed and corrected later -
I was reading about Lumnify's project analysis (https://lumnify.com/project-analysi...) and now I'm curious about my own probably horrendous code quality and how to improve.
Time to learn about code quality and tools I can throw my work at and get analyses back to help me not suck1 -
{
-i won't follow logging practices
-i won't follow secure coding
-i won't leverage profiling n monitoring tools
-i won't reuse best practices
-i won't listen to thought leaders
-i will outsource writing UT
-i will outsource code quality checks
-i will outsource all testing
-i will ignore n overide CTO team
But I still want high stability, security n 4 9s availability. Just want it done. My team is best. Am a fast-track leadership program leader who never has or ever needs to cod. I just know ...
}
People I have to deal with every sprint. Site reliability is not easy ...
Teaching good code makes great products to morons, toughest ...
"Beginners mind needed"2 -
Holy shit, writing code is fun again. Isn't it nice when things actually work for a change, and you can focus on code quality and improvements?
Hard work pays off. -
What I just had to learn again, if you are the one who brings in (quality) standards in group tasks (like everybody does his stuff until day x, specify image sources, not only Wikipedia Copy & Paste), you are with a 95% probability also the one who more or less works alone on it at the end.
(Works the same with group coding projects where the one person in your group that's able to code relies on you doing most of the work because that person is lazy playing games) -
Recently joined new Android app (product) based project & got source code of existing prod app version.
Product source code must be easy to understand so that it could be supported for long term. In contrast to that, existing source structure is much difficult to understand.
Package structure is flat only 3 packages ui, service, utils. No module based grouped classes.
No memory release is done. So on each screen launch new memory leaks keep going on & on.
Too much duplication of code. Some lazy developer in the past had not even made wrappers to avoid direct usage of core classes like Shared Preference etc. So at each place same 4-5 lines were written.
Too much if-else ladders (4-5 blocks) & unnecessary repetitions of outer if condition in inner if condition. It looks like the owner of this nested if block implementation has trust issues, like that person thought computer 'forgets' about outer if when inside inner if.
Too much misuse of broadcast receiver to track activities' state in the era of activity, apપ life cycle related Android library.
Sometimes I think why people waste soooo... much efforts in the wrong direction & why can't just use library?!!
These things are found without even deep diving into the code, I don't know how much horrific things may come out of the closet.
This same app is being used by many companies in many different fields like banking, finance, insurance, govt. agencies etc.
Sometimes I surprise how this source passed review & reached the production.1 -
Isn't it stupid that authors of research work are never vetted for the quality/correctness of their implementation? The code gives them all their cool results and fancy graphs, right?
-
I'm super bored, but I think I found a good way to spend my time.
https://theitsloth.github.io/contex...
https://theitsloth.github.io/editor...
https://theitsloth.github.io/tabbed...
p.s. Code quality varies between meh and awful. -
In your opinion, is it better to work in a dedicated development company (or otherwise dedicated to your IT specialization) or be in-house?
I'm currently one of 2 in-house devs for a small enterprise. So my software engineering practices and code won't be of the highest quality but at this early stage of my career I'm gaining experience in various different aspects of the job and doing many individual different things. So overall I'd say being in-house is good early on for initial exposure, so long as you have a mentor to help you out. -
This article about the types of legacy code bases you will have to deal with just made my day!
Not only do I have every one it describes but somehow it even made me laugh at thought of each of the std riddled petri dishes of code that I reluctantly maintain... My "Happy Place" is a folder dedicated to reliquary projects I like to look at when I feel sad to lift my spirits and restore hope that one day things will be better.
Do you have any definitions to add or know where to find more? I'm hooked.
Link: https://medium.com/@dylanbeattie/...
Excerpt:
The Reliquary
The reliquary is that one repository full of really good ideas. Clean code. Brilliant algorithms. The OpenID implementation that you optimised until it shone. Classes so beautifully designed and perfectly documented that they’d make a senior architect weep.
You remember the big rewrite? The project that was going to fix everything, only you never worked out how to actually launch the thing, or get any revenue from it? The reliquary is where you’ve preserved it, pickled in revision control like a fabulous museum specimen. A treasury of good code and good ideas; maybe even an entire codebase that was “a couple of weeks” away from shipping before somebody finally looked at the number of critical features the team had somehow forgotten to include and discovered — to everybody’s surprise — that validated XHTML, normalised data models and 95% test coverage are not actually features any of your end users cared about.
Like Buran or the Spruce Goose, the surviving artefacts stand as a testament to the quality of your engineering… and a poignant reminder of just how much fun engineers can have building high-quality stuff that nobody actually wants to use. -
There's so much money in technology right now and so much easy success ... and so much poor quality code that is good enough ... that people can not only "function" in rolls they aren't qualified for ... but can excel and even be promoted through the ranks without ever becoming actually functional.
-
Why every time Adsense reject my website
At first, due to not finding the URL, because at the same time I was handling the server
Then, Some errors in the AdSense code.
And now, they are not finding any quality content.6 -
Can anyone suggest a good opensource or free app for dependency mapping?
I have a large monolithic django application with lot of apps and I want to study each app's imports and dependency. This also can help me remove cyclic dependencies.8 -
Code comments are good and all, but there's a time and a place for them. They're more or less an opinionated free-form version of what code is doing.
In a library, they're good for documentation. However in a platform, it makes less sense. Especially one which is changing at quite a fast rate (though it has matured in recent months).
Dont get me wrong, we aren't doing wades of horrible, unintelligible code. We need to be sure of what happens when we call a function, so we make sure the signature is always correct.
def do_good_things(puppies): # "good things" is opinionated. Say what you're doing
"""give treats to puppies""" # doc string is wrong
pet(puppies)5 -
Me: By mandating code coverage pct. (very high ones) and integration test coverage pct. you are building an ever growing Rube Goldberg machine that you will end up spending most of your time fixing rather than working on the actual product.
Them: (Staring and whispering in the background). Wow, you must be stupid. This is how you created quality software.
...time passes and now most time is sucked into figuring out why all branches have failing integration tests all the time.
Me: I told you so. I've seen it multiple times. How about doing it differently?
Them: (staring and whispering in background). You are stupid. This is exactly how quality software is built. We know what we are doing. You must like waterfall.4 -
Is this a justified code review comment or a bully?
Code reviews are weakness of this industry which has the potential to attract bullies. Abuse of the comment box in a pull request and bombarding the employee with hundreds of comments can cause stress, frustration, burnout and finally resignation and costs of fulfillment for the organization. While companies should find and stop bullying in the work place, what kind of code review comment is considered a bully and why? Any of below traits can mean you are dealing with a bully:
1. Claims the code needs to be changed but doesn't say how. So no matter how many times you change your code, he can repeat the same comment: "Your code is still bad due to blah blah and it needs to be changed".
2. Provides how the code should be changed, but the change doesn't add up to quality, security, performance, readability, etc. i.e. "Why did you use a for loop here? Use a while loop instead". Or "Why did you write it using three classes A, B and C? Instead write it using 4 classes D, E, F and G which does blah blah". In the later case, not following the review comment, you won't get approval. Following the comment means you need to rewrite your whole code. After which, you might again receive more comments to change other parts of your code!
3. Claims the requested change is due to standards but claimed standard does exist anywhere. Internet, company wiki, university course books, anywhere. In more severe cases of psychopathy, the bullying person refers you to a link which hours later turned out to be written by himself! Have fun describing what has happened to your manager or team leader... .
4. Asks the code to be changed in a way that supposedly is closer to standard or of better quality, security, performance, etc. But the proposed way will not work and is the main reason you didn't do that in the first place. So you start arguing forever in the comment box over why his method won't work!
If you cannot see any of the above traits, then keep calm, take a breath, fix your code. Otherwise you might be victim of a bully.2 -
Do dev or engineer needs to know how the program works?. I mean that should they know about time and space complexity?
Till now my answer is yes, they should know. But i have met more than triple Dev's with absolutely no knowledge of complexity and they all are behind code quality.6 -
Whatever it costs to improve myself and my coding skills, to be honest.
So guys suggest your favorite way to improve and enhance your code quality.4 -
When you have a BA who types things to prove that they do work, then you get to be the BA too. Good thing that architecture, test design, code quality, and sanity aren't really a priority.
-
How do people check code quality during interview process online? I believe I write a very good one after 9years+ experience but never got passed...
-
Seems like a pretty cool dev community.. Some quality memes with code puns are always a crack(err)..1