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 reusability"
-
Somehow I enjoy creating flawlessly working nifty utilities a lot more than writing actual business code.
It's that versatility and reusability of a well-written utility that makes it suitable for many use-cases that puts a smile on my face.
A single-purpose business and use-case-specific piece of code doesn't do it for me anymore. I guess it never did, really...
I wish I could get paid for building tools rather than business apps :)3 -
How do you get over the bad times? I keep having to work with shitty legacy systems that were written in perl and flash in the 90s, but my boss keeps telling me "No" on redoing some of the bigger stuff even though it is really needed. I mean, that is your goal here, right? Rebuilding this POS? FFS you still stored passwords in plain text twoo weeks ago! But no, you's rather dig around in Perl than upset some random user because his fucking interface looks different.
But then I also have to work with another system that I could redo in Cake/Laravel in two weeks (it's literally getting and writing data to one table, so two views and user auth), and the previous dev just... made a huge mess. I mean, why would you need to post data asynchronously when it's this one stupid form ? Just do a regular form submit? And the system is really not suitable for extending, because everything is in the database, EVERYTHING! Like, html form inputs? So to add a simple input to the template I have to create a new input type in the types table and then add that to the form structure table? Only to have the input checked by fucking regex? REGEX! Why? Seriously, this is not some high end CMS that needs this level of code reusability No. This is a simple fucking form.
And I can't get it to work. No documentation of course. No comments, either. All of this makes me feel like I'm just the shittiest dev ever. I feel dumb, and useless. Haven't turned on my private PC in weeks because I see no reason to work on any of my own stuff.
I used to have a job, working with Magento and Wordpress. And yeah, it was horrible, it was chaos, but it was fun and I was great at it. I bent that motherfucking system to fit my needs. People respected my opinion, they were convinced I could program this and that, and I proved them right. Did I make mistakes? Hell yeah. Did I give up? Fuck no!
But now, I just feel like I can't even write a simple fucking form any more. I'm just so close to giving up on development as a whole, even though I love it so much.5 -
Yesterday I wanted to make a small infographic. I started with photoshop, switched to illustrator, then indesign, then back to illustrator. All of them have super shitty quirks when it comes to work like that.
Next time I will just build it as a website and screenshot it. Elegance of code-based design is just unmatched. It brings reusability, consistency and precision to another level.4 -
Engineering manager and I have a chat last Friday about some working performant code that needs to be refactored for future reusability. Not my favorite stuff but ok, let’s do it. We talk about things VERBALLY, one way of doing it, then another way. She’s in a rush to her next meeting and has to go. I feel very clear on what she wants and how it needs to happen.
After the call I do some thinking and I give her the estimate and brief her my plan. I tell her exactly the way it’s going to be done. She says do it and gives me her sign off.
I submit my MR today. And then she says why I didn’t do it another way. A more generalized way. And “the way we talked about.”
And I ask her if she can explain her way bc there is obviously some misunderstanding. And she proceeds to zero in on some functions I wrote and say how they are not generalized enough and how it’s basically the same as what we had before (but it’s actually a much different design). I patiently listen and at some point she abruptly says she’s out of time and needs to go to a meeting. I say I still don’t understand what she wants. Then she says that she will implement it bc I still don’t understand and she has no more time to explain. I feel pretty bad.
I suggest next time she can show me on zoom whiteboard, just anything visual and not auditory to make sure things are clear and we are on the same page.
She concludes that management has directed us to come to the office more so I need to come in so we can do in person white-boarding.
This whole thing feels unnecessary. We’ve never had this issue before. It seems like either some intentional plot to get me to come into the office more often or terrible communication skills and a lack of priority on my managers part. Like can you just white board your ideas for 5 minutes?!?! There are many tools to do this digitally!
The thing is I still don’t know where the communication gap is bc I still don’t know what she wants. Keep in mind all this fuss is over three cards of text on a webpage.
This is my first job in industry. How do managers normally communicate engineering ideas? And what are the best ways over zoom? And in person?
I noticed here there is not a culture of whiteboarding or pair programming.
It’s on the days like these I question what I’m doing here…10 -
Sydochen has posted a rant where he is nt really sure why people hate Java, and I decided to publicly post my explanation of this phenomenon, please, from my point of view.
So there is this quite large domain, on which one or two academical studies are built, such as business informatics and applied system engineering which I find extremely interesting and fun, that is called, ironically, SAD. And then there are videos on youtube, by programmers who just can't settle the fuck down. Those videos I am talking about are rants about OOP in general, which, as we all know, is a huge part of studies in the aforementioned domain. What these people are even talking about?
Absolutely obvious, there is no sense in making a software in a linear pattern. Since Bikelsoft has conveniently patched consumers up with GUI based software, the core concept of which is EDP (event driven programming or alternatively, at least OS events queue-ing), the completely functional, linear approach in such environment does not make much sense in terms of the maintainability of the software. Uhm, raise your hand if you ever tried to linearly build a complex GUI system in a single function call on GTK, which does allow you to disregard any responsibility separation pattern of SAD, such as long loved MVC...
Additionally, OOP is mandatory in business because it does allow us to mount abstraction levels and encapsulate actual dataflow behind them, which, of course, lowers the costs of the development.
What happy programmers are talking about usually is the complexity of the task of doing the OOP right in the sense of an overflow of straight composition classes (that do nothing but forward data from lower to upper abstraction levels and vice versa) and the situation of responsibility chain break (this is when a class from lower level directly!! notifies a class of a higher level about something ignoring the fact that there is a chain of other classes between them). And that's it. These guys also do vouch for functional programming, and it's a completely different argument, and there is no reason not to do it in algorithmical, implementational part of the project, of course, but yeah...
So where does Java kick in you think?
Well, guess what language popularized programming in general and OOP in particular. Java is doing a lot of things in a modern way. Of course, if it's 1995 outside *lenny face*. Yeah, fuck AOT, fuck memory management responsibility, all to the maximum towards solving the real applicative tasks.
Have you ever tried to learn to apply Text Watchers in Android with Java? Then you know about inline overloading and inline abstract class implementation. This is not right. This reduces readability and reusability.
Have you ever used Volley on Android? Newbies to Android programming surely should have. Quite verbose boilerplate in google docs, huh?
Have you seen intents? The Android API is, little said, messy with all the support libs and Context class ancestors. Remember how many times the language has helped you to properly orient in all of this hierarchy, when overloading method declaration requires you to use 2 lines instead of 1. Too verbose, too hesitant, distracting - that's what the lang and the api is. Fucking toString() is hilarious. Reference comparison is unintuitive. Obviously poor practices are not banned. Ancient tools. Import hell. Slow evolution.
C# has ripped Java off like an utter cunt, yet it's a piece of cake to maintain a solid patternization and structure, and keep your code clean and readable. Yet, Cs6 already was okay featuring optionally nullable fields and safe optional dereferencing, while we get finally get lambda expressions in J8, in 20-fucking-14.
Java did good back then, but when we joke about dumb indian developers, they are coding it in Java. So yeah.
To sum up, it's easy to make code unreadable with Java, and Java is a tool with which developers usually disregard the patterns of SAD. -
OOP is all about code reusability until you really want exactly the code Foo with non-pure functions in all your classes. You end up almost rewriting all subclasses' properties into the superclass to silence typecheckers. Is there no "I know what i'm doing, please just transpile/compile this piece of logic into these 20 places I need?" You end up doing it the functional way, dumping refs and params into some shared util function and have it do the job. I know, might as well have that one inherited also, but what's the point of adding more mess just for that ?2
-
So I’m taking a class on compilers (currently a college student) and as I get further into a coding project we have to do I can feel and see my code degrading into a giant mass of spaghetti. Although I know that I should refactor it because it is messy (currently trying to find a balance between refactoring and actually getting the assignment done) the scary thing is some students in my class think this is perfectly normal code and is what good code looks like. Scary thought that so many people graduating from university have no concept of object orientation, reusability, etc... but what’s even scarier is most professors could not give two shits about any of these notions. I guess this is the biggest reason why a computer science degree does not prepare you for a job in industry.
-
I wonder if there is any technical issues that prohibit the creation of open source websites.
By "web sites" I do not consider CMS like Drupal or word press, but rather entire end web site sources.
In fact anything (frontend, backend) except database content that contain user data and credentials.
Not for reusability purposes like CMSs, but simply for transparency and community development purposes, like almost any open source end application.
I agree that a web server is much more exposed than a classic desktop app, as it has lots of targetable private data and internet public access. But for some non-critical purpose this seems to be affordable in exchange of better code review, allowing a community to help improve a tool it uses, and better (not perfect though) transparency (which is an increasingly relevant question nowadays, mainly towards personal data usage).6