Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "too many frameworks"
It's maddening how few people working with the internet don't know anything about the protocols that make it work. Web work, especially, I spend far too much time explaining how status codes, methods, content-types etc work, how they're used and basic fundamental shit about how to do the job of someone building internet applications and consumable services.
The following has played out at more than one company:
App: "Hey api, I need some data"
API: "200 (plain text response message, content-type application/json, 'internal server error')"
App: *blows the fuck up
*msg service team*
Me: "Getting a 200 with a plaintext response containing an internal server exception"
Team: "Yeah, what's the problem?"
Me: "...200 means success, the message suggests 500. Either way, it should be one of the error codes. We use the status code to determine how the application processes the request. What do the logs say?"
Team: "Log says that the user wasn't signed in. Can you not read the response message and make a decision?"
Me: "That status for that is 401. And no, that would require us to know every message you have verbatim, in this case, it doesn't even deserialize and causes an exception because it's not actually json."
Team: "Why 401?"
Me: "It's the code for unauthorized. It tells us to redirect the user to the sign in experience"
Team: "We can't authorize until the user signs in"
Me: *angermatopoeia* "Just, trust me. If a user isn't logged in, return 401, if they don't have permissions you send 403"
Team: *googles SO* "Internet says we can use 500"
Me: "That's server error, it says something blew up with an unhandled exception on your end. You've already established it was an auth issue in the logs."
Team: "But there's an error, why doesn't that work?"
Me: "It's generic. It's like me messaging you and saying, "your service is broken". It doesn't give us any insight into what went wrong or *how* we should attempt to troubleshoot the error or where it occurred. You already know what's wrong, so just tell me with the status code."
Team: "But it's ok, right, 500? It's an error?"
Me: "It puts all the troubleshooting responsibility on your consumer to investigate the error at every level. A precise error code could potentially prevent us from bothering you at all."
Team: "How so?"
Me: "Send 401, we know that it's a login issue, 403, something is wrong with the request, 404 we're hitting an endpoint that doesn't exist, 503 we know that the service can't be reached for some reason, 504 means the service exists, but timed out at the gateway or service. In the worst case we're able to triage who needs to be involved to solve the issue, make sense?"
Team: "Oh, sounds cool, so how do we do that?"
Me: "That's down to your technology, your team will need to implement it. Most frameworks handle it out of the box for many cases."
Team: "Ah, ok. We'll send a 500, that sound easiest"
Me: *..l.. -__- ..l..* "Ok, let's get into the other 5 problems with this situation..."
Moral of the story: If this is you: learn the protocol you're utilizing, provide metadata, and stop treating your customers like shit.22
My first self written framework 😅
Damn that was a pile of ****, I still write my own stuff (frameworks etc) but I've learned a lot and those are way better compared to that first one.
Everything was static, loads of defines (way too fucking many) and so on.
2017 Recap + DEVBANNER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
1. So, let's recap my 2017 first. It was awesome
Here is some list that I can remember
- finding my hobby (fsx, vatsim)
- finding computers aren't genius
- creating a new language
- major improvements in my unity skills
- found out i am friendly
- getting a job at google in a dream
- creating my banner in krita --> devbanner collab :D
- Logo creation fail
- CS class apply fail
- getting free stickers for the first time of my life
- getting death threats (lol)
- finishing my first ever big c# project
- got offensive words from a bot that i am a f***ing d***head.
- getting downvotes after creating such a shitty meme
- getting my rant featured in twitter
- finding that my friends love my game
- getting a sneak peak at the src of devrant
- coding with turbo c
- not using git cuz too lazy
- finds out msdn is god
- slowly hating unity, but likes it cuz it is using c#
- reaching level 2 in google foobar
- started 100+ projects this year and finished about 6 of them.
- devRant motivated me a lot
2. devBanner stuffs
So, how it all started is when I wanted to create my own logo. Some people will remember it. The one with arrows and cozyplales written on it. Then, I created my own banner with Krita (their text tool sucked). After that, due to some suggestions by the community, I decided to create a collab. From then, many people contributed to the devBanner project. Special thanks to @Kimmax for his awesome prototype of the frontend made during I was sleeping.
Now, before I talk more, I want to talk something. I don't post a rant about my collab cuz i want to get upvotes. I just want more people to use this simple creation software. You can literally use them anywhere, and it is FOSS.
If you want to create again, you can do so at https://devbanner.center
If you want to contribute, please do so by visiting https://github.com/devBanner
We are looking for a skilled frontend dev who can do the basic web stuffs. (we don't use frameworks currently for our frontend)
Thanks everyone for making 2017 awesome. Can't wait to welcome 2018. Happy new year everyone, and I will drop my banner here.21
My tech stack progression:
Started with PHP without any frameworks, using a homegrown MVC architecture. Used to use `mysql_` functions everywhere. And only jquery + vanilla CSS in the front end.
Then moved to use PDO functions in PHP and Backbone.js + Less CSS in the front-end.
Then moved to Django in the back-end. Did not like Django very much as it is too opinionated and not flexible (although it's damn good for rapid development if you buy into their type of things).
Then moved to Flask + SQLAlchemy and using a home grown architecture. This is a sweet spot for me in terms of back end and stayed in this spot for the longest time.
Moved to Postgres from MySQL as I fell in love with Postgres.
Then learnt React+Redux. Liked it. Made most sense to front-end development this way. Moved front-end stack to React+Redux.
Learning Haskell and been working with Scotty and eyeing Servant for a while now.
Let's see where it goes from here.
PS: this is my personal journey through various tech stacks in various products at various companies I have worked. I'm not talking about moving a product through these many tech stacks. That doesn't make any sense.9
I'll use this topic to segue into a related (lonely) story befitting my mood these past weeks.
This is entire story going to sound egotistical, especially this next part, but it's really not. (At least I don't think so?)
As I'm almost entirely self-taught, having another dev giving me good advice would have been nice. I've only known / worked with a few people who were better devs than I, and rarely ever received good advice from them.
One of those better devs was my first computer science teacher. Looking back, he was pretty average, but he held us to high standards and gave good advice. The two that really stuck with me were: 1) "save every time you've done something you don't want to redo," and 2) "printf is your best debugging friend; add it everywhere there's something you want to watch." Probably the best and most helpful advice I've ever received 😊
I've seen other people here posting advice like "never hardcode" or "modularity keeps your code clean" -- I had to discover these pretty simple concepts entirely on my own. School (and later college) were filled with terrible teachers and worse students, and so were almost entirely useless for learning anything new.
The only decent dev I knew had brilliant ideas (genetic algorithms, sandboxing, ...) before they were widely used, but could rarely implement them well because he was generally an idiot. (Idiot sevant, I think? Definitely the idiot part.) I couldn't stand him. Completely bypassing a ridiculously long story, I helped him on a project to build his own OS from scratch; we made very impressive progress, even to this day. Custom bootloader, hardware interfacing, memory management, (semi) sandboxed processes, gui, example programs ...; we were in highschool. I'm still surprised and impressed with what we accomplished.
But besides him, almost every other dev I met was mediocre. Even outside of school, I went so many years without having another competent dev to work with. I went through various jobs helping other dev(s) on their projects (or rewriting them), learning new languages/frameworks almost every time: php, pascal, perl, zend, js, vb, rails, node, .... I learned new concepts occasionally (which was wonderful) but overall it was just tedious and never paid well because I was too young to be taken seriously (and female, further exacerbating it). On the bright side, it didn't dwindle my love for coding, and I usually spent my evenings playing with projects of my own.
The second dev (and one one of the best I've ever met) went by Novo. His approach to a game engine reminded me of General Relativity: Everything was modular, had a rich inheritance tree, and could receive user input at any point along said tree. A user could attach their view/control to any object. (Computer control methods could be attached in this way as well.) UI would obviously change depending on how the user could interact and the number of objects; admins could view/monitor any of these. Almost every object / class of object could talk to almost everything else. It was beautiful. I learned so much from his designs. (Honestly, I don't remember the code at all, and that saddens me.) There were other things, too, but that one amazed me the most.
I havent met anyone like him ever again.
Anyway, I don't know if I can really answer this week's question. I definitely received some good advice while initially learning, but past that it's all been through discovering things on my own.
It's been lonely. ☹2
I've been using microsoft dev stack for as long as i remember. Since I picked up C#/.NET in 2002 I haven't looked back. I got spoiled by things like type safety, generics, LINQ and its functional twist on C#, await/async, and Visual Studio, the best IDE one could ask for.
Over the past few years though, I've seen the rise of many competing open source stacks that get many things right, e.g. command line tooling, package management, CI, CD, containerization, and Linux friendliness. In general many of those frameworks are more Mac friendly than Windows. Microsoft started sobering up to this fact and started open sourcing its frameworks and tools, and generally being more Mac/Linux friendly, but I think that, first, it's a bit too late, and second, it's not mature yet; not even comparable to what you get on VS + Windows.
More recently I switched jobs and I'm mainly using Mac, Python, and some Java. I've also used node in a couple of small projects. My feeling: even though I may be resisting change, I genuinely feel that C# is a better designed language than Java, and I feel that static type languages are far superior to dynamic ones, especially on large projects with large number of developers. I get that dynamic languages gives you a productivity boost, and they make you feel liberated, but most of the time I feel that this productivity is lost when you have to compensate for type safety with more unit tests that would not be necessary in a static type language, also you tend to get subtle bugs that are only manifested at runtime.
So I'm really torn: enjoy world class development platform and language, but sacrifice large ecosystem of open source tools and practices that get the devops culture; or be content with less polished frameworks/languages but much larger community that gets how apps should be built, deployed, monitored, etc.
Damn you Microsoft for coming late to the open source party.11
TLDR: Ever wondered what your project's intro/theme song would be?!
Share yours if you ever thought about it or some particular song plays in your head while reading this..
Long(er) version + story: project I am currently working on is notorios in our company.. everyone avoids it, parts of code are untouched for 10+ years.. I used to think it was a 'shitty' project, many frameworks, many parts, many coding styles, many bugs... but longer I worked on it, more I came to realisation, it's not the code, it was the coders.. sloppy coders who didn't give a flying f..
Yes, some things are outdated still, and could be rewritten better (hopefully it will start happening soon! Yay!!), some were already rewamped, new things added... but for the time it was going live, it was majestic. I love solving bugs n problems so I must admit it has grown on me.. my little baby/devil..
Anyhu, one day on skype out of the blue I got this pic from my coworker.. made my day, laughed my ass off.. later that day I was debbuging something and youtube started rolling saw theme song (https://youtu.be/9fwWS6Xo1go)...
When I realised what I was listening too, it made perfect sense.. I was relaxed, at peace.. it clicked.. the song, the project, the bug, the code.. it all made chaotic sense..
I want to play a game..
I realised, project wasn't mean, it was just misunderstood and mistreated.. it can be your best friend if you play nice.
I replied to said coworker that I rhink I just found out my project's theme song and pasted the link.. he laughed, I laughed, my project laughed then it killed my test server.. It was a great day!! 🤣🤣🤣🤣
// all true except the project killing server part, that in fact happened on a different occasion
So.. you guys had any moments like this? Any theme songs, intros for your projects?? Or am I the only weirdo who makes associations like this all the time... 🤔🤣😇 ???6
Some honest to God declarations are in place here! Hope no new js frameworks get added before this rant is seen.5
I watched this video today about the new Xbox adaptive controllers. I had heard about it before, but never knew how capable or functional it actually was.
And watching that video made me realise exactly how much the tech we build , and support helps many people live the lives they wanted.
All the rants about languages , editors , frameworks aside , things like this were built with an idea and an inclusive intension to help. And that's exactly what we all are here for :)
do check the video out it made my day and I'm sure it will make yours too ..
Ok now let's get our pitchforks back and go hunt some vim users down.
I usually open this account when my brain is full of shit. So brace yourself if you wanna read next. you won't get any more happier. i definitely am not.
I AM A SHIT RIGHT NOW. So fucking done with everything. a month from now and i turn 21, and look what i have achieved: shitty brain, shitty personality, ugly looks nd no income. But well, most of the people i know are more or less similar.
But what the fuck i am. so less of confidence. can't even write here without a fake account. Coz my original account has details of a cheerful, joke posting swaggy mobile dev guy with good social skills. But am I? where is the proof? I am about to go to 4th year this august, my college (of the "great" indian edu system) wants the students to do internships and fucks. But i don't wanna do that. I had done that twice already when other students were playing and roaming and enjoying their life
So here i am , a so called "dev" not doing any shit in summer.
So what i am doing? wait we wil come to that.
So how's college going? shit. Maybe i am not fooling myself and the other people around me that i am a "so good" dev that i keep my fat ass home during summer and do poorly at college with average attendance & marks. But currently everyone is forgetting me and giving me shit for being a shitty student.
Oh. So how'z family doing? Oh its Bad(even writing that word hurts) to be honest my daddy( i love him so much) was not a good businessman. We changed business from being a small grocery shop owner to water supplier to now a restaurant. mum and dad, they are now in debts that hey can pay but they are trying their best to get a settled life and safe source of income.We are at the verge of closing. fuck. Our food is liked by everyone, but here we need a staff of 7 .Those fucking cheap village labor runs off to their homes in summer. And my dad who should be manager ,has to do tasks like cleaning utensils. Yet he does, that lovely old man.
And what does their "only 21 yr old son" does? fucking sit in their home, doing no shit but sleep during the day and watching a fucking laptop screen during the night.
Its been 2 years of mobile dev. i think i know a lot of things, But i don't feel confident about it. I thought about giving a certification paper that would give me a little boost but i don't feel confident about that too. its syllabus had a lot of things that i didn't know when i saw it first, last year. There are a lesser things now that i don't know. and maybe if i give it a week or two, i would be fully equipped to take that shit.
That's what my plan of action was, this summer. That , along with many other things: To give that paper. To learn 10-12 more frameworks/technology/languages, build 2-3 production level apps ,have a solid resume and then try for companies(but clg wants to force us in getting internships and shit).Also in terms of personal goals: get in shape wake up early, sleep early , exercise,go for runs, eat right. get and learn a fucking 2 wheeler (Yup. that's right. 21 yaer old ,who doesn't have/know how to drive a scooty. family couldn't have bought it then and now i don't want it. another pin of shame on my chest). help my small 3 ppl family in its business.
But all went to this shit that i have made.
>>"Hey X, its vacations now! let's learn this new language/framework/gaming engine that we so much dreamed during our papers" "Meh. fuck it, first let me get give that paper i have been postponing" .
>>"oh yeah you can prepare for that in a week ,let's do this" *15 days passes. no shit is done*
>>"Oh X, you gotta stop wasting time" *downloads another season of oitnb*
>>"Common man. okay stop, let's leave screen, wake up early , focus on body goals" *Wakes up tomorrow, goes to park, does running,exercise, comes home. Ow body hurting. sleeps full day. wakes in evening*
>>"Oh man, you missed the whole day's study" " yeah mann. fuck the morning routine. that makes body full of pain. Let's leave body goals, we can't focus on study coz of that. and what good would a less obese sagging guy be anyway, when you are already 5'4 . fuck exercise"
>>" hmm. okay. but no more web series or sleepless nights" *Goes on watching full series in night and sleeping full day without moving his ass by an inch, while poor family goes onto their routines*
>> "ahh this is getting insane. go meet your friends, you are too lonely. How are they anyway?" Fucking great friends they are. I used to think that i overthink about friendships & othr ppl's actions and should take things lightly. So when a small prank happened and i got out of the 'whatsapp' group, i was never invited in again and am now totally cut off! in real life we are all chill, even when we DM its all gud, but mann , did we all actually chatted in that shitty group only? coz i don't see any msgs in my DM. what the fuck is everyone upto ? I keep feeling those lazy asses are talking w/o me but keep trying to tell myself to not give a fuck coz they don't.
Subaru's Symmetrical AWD is the best thing in the world at the moment. Also, warning: !dev
Tl;dr: I'm getting another RPi3 thanks to awesome engineering.
Got a couple of inches of light snow here, and on my way home I came across a GMC Sierra dually stuck at the bottom of a moderately sized ditch. Naturally, I stopped by in my Forester and offered to tow it out.
With my 20ft tow rope stretched to its full length I was barely touching the road. He signalled that he was ready, and I gunned it. Slowly but surely the truck crawled out of the 6ft deep trench. She crested the hill with much applause (from me and the driver of the truck). As a thanks, he gave me $30.
Looks like I'm gonna get a new Raspberry Pi to play with. I think I'll turn this one into a countertop MAME arcade machine.
And for those of you wondering why I'm praising Symmetrical AWD as opposed to AWD in general, here's a quick lesson in drivetrains:
Most all wheel drive cars power the front wheels most of the time. This saves on fuel economy. The thing is, power is only transmitted to the rear wheels when the front wheels start to lose traction. At that point you're already screwed; only two wheels at any one time are putting useful power to the road.
Symmetrical AWD systems, like you'll find in all Subarus and most performance cars, distribute the vehicle's torque eaqually front-rear at all times. So instead of waiting until the front wheels start slipping, all of the wheels are powered right off the bat.
To make this more devvy: grrrr php, vim is best, I configured the tab key to enter four spaces, js has too many damn frameworks and they're still being pumped out faster than rabbits in a bunny farm.3
There has been a post today about the existence of too many js frameworks. Which reminds me of this awesome post https://hackernoon.com/how-it-feels...
At first I thought someone was corpseposting, as it is my understanding that the js ecosystem is calming down a bit. But then I noticed that post got almost 20 upvotes. So here's my thoughts:
(I'm not sure what I'm ranting about here, as it feels kinda broad after writing it. I think it's kinda valid anyhow.)
I'm ok with someone expressing frustration with js. But complaining about progress is definitely off to me.
How is too many frameworks a bad thing?
How does the variety and creation of more modern frameworks affect negatively developers?
Does it make it hard to understand each of these new frameworks?
Well, there's no need to. Just because it has a logo and some nice badges and says it will make you happy doesn't mean you should use it.
You just stick to the big boys in the ecosystem and you'll be fine for a while.
Does it make you feel compelled to migrate the stack of every project you did?
Well, don't. If you don't like being on the bleeding edge of js, then just stick to whatever you're using, as long as it's good code.
But if a lot of companies decided to migrate to react (among others frameworks), it's because they like the upsides: the code is faster to write, easier to test and more performant.
In general, I'm more understanding/empathic with beginner js programmers.
But I have for real heard experienced devs in real life complain about having to learn new frameworks, like they hate it.
"I just want to learn a single framework and just master it throughout my life" and I think they're lowering the bar.
There's people that for real expect occupying positions for life, make money, but never learn a new framework.
We hold other practitioners to high standards (like pilots or doctors), but for some reason, some programmers feel like they're ok with what they know for life.
As if they couldn't translate all they learned with one framework to another.
Meanwhile our lives are becoming more and more intertwined with technology and demand some pretty high standards. Standards that historically have not been met, according to thousands of people screaming to their devices screens.
Even though I think the "js can be frustrating" sentiment is valid, the statement 'too many js frameworks is bad' is not.
I think a statement like 'js frameworks can go obsolete very quickly' is more appropriate.
By saying too many js frameworks is a bad thing you're
1) Making a conspiracy theory as if js devs were working in tandem to make the ecosystem hard,
But people do whatever they want. Some create packages, others star/clone/use them.
2) Making a taboo out of a normal itch, creating.
"hey you're a libdev? just stop, ok? stop"
"Are you a creative person? Do you know a way to solve a problem in an easier way than some famous package? it doesn't matter, don't you dare creating a new package."
I'm not gonna say the js world is perfect. The js world is frantic, savage, evolves aggressively.
You could say that it (accidentally) gives the middle finger to end users, but you could also say that it just sets the bar higher.
I liked writing jquery code in the past, but at the same time I didn't like adding features/fixing bugs on it. It was painful.
So I'm fine with a better framework coming along after a few years and stealing their userbase, as it happens almost universally in the programming world, the difference with js is that the cycle is faster.
Even jquery's creator embraced React.
This post explains also
it's great how most are easy to use and very useful.
i dont know why people hate this abundance of choice, if theres too many for you to chose than you need to be more decisive.5
It's been a while DevRant!
Straight back into it with a rant that no doubt many of us have experienced.
I've been in my current job for a year and a half & accepted the role on lower pay than I normally would as it's in my home town, and jobs in development are scarce.
My background is in Full Stack Development & have a wealth of AWS experience, secure SaaS stacks etc.
My current role is a PHP Systems Developer, a step down from a senior role I was in, but a much bigger company, closer to home, with seemingly a lot more career progression.
My job role/descriptions states the following as desired:
I am also well versed in various JS frameworks, PHP Frameworks, JAVA, C# as well as other things such as:
Xamarin, Unity3D, Vue, React, Ionic, S3, Cognito, ECS, EBS, EC2, RDS, DynamoDB etc etc.
A couple of months in, I took on all of the external web sites/apps, which historically sit with our Marketing department.
This was all over the place, and I brought it into some sort of control. The previous marketing developer hadn't left and AWS access key, so our GitLabs instance was buggered... that's one example of many many many that I had to work out and piece together, above and beyond my job role.
Done with a smile.
Did a handover to the new Marketing Dev, who still avoid certain work, meaning it gets put onto me. I have had a many a conversation with my line manager about how this is above and beyond what I was hired for and he agrees.
For the last 9 months, I have been working on a JAVA application with ML on the back end, completely separate from what the colleagues in my team do daily (tickets, reports, BI, MI etc.) and in a multi-threaded languages doing much more complicated work.
This is a prototype, been in development for 2 years before I go my hands on it. I needed to redo the entire UI, as well as add in soo many new features it was untrue (in 2 years there was no proper requirements gathering).
I was tasked initially with optimising the original code which utilised a single model & controller :o then after the first discussion with the product owner, it was clear they wanted a lot more features adding in, and that no requirement gathering had every been done effectively.
Throughout the last 9 month, arbitrary deadlines have been set, and I have pulled out all the stops, often doing work in my own time without compensation to meet deadlines set by our director (who is under the C-Suite, CEO, CTO etc.)
During this time, it became apparent that they want to take this product to market, and make it as a SaaS solution, so, given my experience, I was excited for this, and have developed quite a robust but high level view of the infrastructure we need, the Lambda / serverless functions/services we would want to set up, how we would use an API gateway and Cognito with custom claims etc etc etc.
Tomorrow, I go to London to speak with a major cloud company (one of the big ones) to discuss potential approaches & ways to stream the data we require etc.
I love this type of work, however, it is 100% so far above my current job role, and the current level (junior/mid level PHP dev at best) of pay we are given is no where near suitable for what I am doing, and have been doing for all this time, proven, consistent work.
Every conversation I have had with my line manager he tells me how I'm his best employee and how he doesn't want to lose me, and how I am worth the pay rise, (carrot dangling maybe?).
Generally I do believe him, as I too have lived in the culture of this company and there is ALOT of technical debt. Especially so with our Director who has no technical background at all.
Appraisal/review time comes around, I put in a request for a pay rise, along with market rates, lots of details, rates sources from multiple places.
As well that, I also had a job offer, and I rejected it despite it being on a lot more money for the same role as my job description (I rejected due to certain things that didn't sit well with me during the interview).
I used this in my review, and stated I had already rejected it as this is where I want to be, but wanted to use this offer as part of my research for market rates for the role I am employed to do, not the one I am doing.
My pay rise, which was only a small one really (5k, we bring in millions) to bring me in line with what is more suitable for my skills in the job I was employed to do alone.
This was rejected due to a period of sickness, despite, having made up ALL that time without compensation as mentioned.
I'm now unsure what to do, as this was rejected by my director, after my line manager agreed it, before it got to the COO etc.
Even though he sits behind me, sees all the work I put in, creates the arbitrary deadlines that I do work without compensation for, because I was sick, I'm not allowed a pay rise (doctors notes etc supplied).
What would you do in this situation?4
I don't know if it's age, having too many other things I can/need do, not having any more major personal tech itches to scratch, or just seeing no point in learning any new tech unless I need it for work... But I've just been coding less personally... And maybe even at work...
I feel like in terms of being a dev, there's nothing else I want anymore, nothing I want to learn unless I actually need it...
I haven't done any major personal projects in maybe the last year or more (although I have made small tweaks to a few of my existing ones).
And well I don't care anymore about React, Angular, or the latest JS frameworks or have any interested with Cloud or Docker....
And as long as I have a decent job, even though it's pretty boring and not much growth.... I don't care and no longer bother trying to get a better one...
Wondering if anyone else feels like they have peaked or just lost the drive and motivation to get better?
I don't know maybe it's just work... Ok my team I think I'm probably the best and will I'm tired of telling other people what they should do.... And maybe also tired of looking for or chasing "opportunities" that don't seem to lead to anything.... Except wasted time and effort?11
A quick rant about dependency injection.
I see far too often in projects, a huge over-reliance on dependency injection / IOC frameworks which permeate throughout the entire codebase.
I cringe every time I see a constructor annotated with @Inject and 10 params.
The benefit of these frameworks is how easy they make it to manage many dependencies. What I dislike about them, is exactly that. I feel that they make it TOO easy to manage many dependencies.
How trivial is it to simply add another constructor param? exactly. And people then wonder why their dependency tree looks insane.
I am a strong believer in injecting dependencies the traditional way, via the constructor with no fancy framework. The reason being that it forces you to think more about the dependencies you are adding to your classes, and consider if they are really all needed.
The other problem I have with it, is it basically encourages you to inject everything because its so easy. The purpose of dependency injection is inversion of control and allowing classes to depend on abstraction rather than concrete implementation. All that goes out the window when you @Inject 6 different concrete classes.
Use dependency injection for its intended purpose, not as an excuse to be lazy and avoid thinking about dependencies.3
Tl;dr I am incredibly ashamed of my code at work.
I recently started working as a junior dev. I know many aspects of the stack I use, and I feel pretty comfortable when solving simple and specific problems.
But this is the first complete project I make, and I received no peer review until now. And my code sucks.
I tried my best to deliver a good and working code, but it became messy in too many places. Now it's too late to refactor.
Probably I just cannot see the right way of modeling specific situations, I don't feel I should blame the frameworks I'm using, but the point is that my code sucks. Or at least this is how I feel.
I'm going to leave this workplace soon (personal reasons, not related to this topic and/or the company), and I am kinda scared of the shit I'm about to leave to them. It's a very nice environment and they don't deserve this crap. Also I have some other good reasons to worry about this, but I cannot tell them.
My plan is to finish a couple or personal stuff I have to do and then spend as many hours I can on the project trying to finish it asap and make the code better (for now I've been working only 6hr/day).
I'm really thinking that I just suck at this.12
Without a doubt it has to be the internal company search engine/file finding tool @thewamz and I wrote.
The company has a wide UNC network with files scattered all over the place and they need a way to keep track of where the files get moved to (they can and do get moved). The original tool was written in Java/Tomcat and didn't use any frameworks or utilities beyond custom written ones, no orms, and the SQL was just raw strings. The program didn't take into account that files might be moved or deleted so it never removed anything from the database, it just kept adding files and never removing them.
It however never stores files itself, just links to files elsewhere on the UNC network.
It took six months to get it into what might be a stable beta or release candidate state. The user interface is good, very simple and intuitive, the whole thing was rewritten in python/django, there were issues with utf 8 (and mysql not fully supporting utf 8 in its own utf 8 mode), we added a regex search mode (which was sorely lacking), the search used to take up to fifteen minutes however we sped it up to less than a minute (worst case when a user simply puts "^$" as the regex search). It has a multi threaded design which does some checks to ensure it doesn't spawn too many threads and get stuck in constant Gil switching. Still some bugs to fix, like moving the processing of results returned by the server in a web worker so that the content widget doesn't lock up processing millions of search results and moving the back end to use asynchronous python might gain a performance boost. But on the whole I think the system is ready to replace the older system that all the users are frustrated with and constantly complain about.
However the annoying bit is... How to actually get the new system online, while I am responsible for the development of tools and their maintenance, I am not responsible for their initial deployment and that means I have no idea when (or even if) my new tool will even ever be released :/
A question to game devs : which design/architecture patterns do you use ?
Everytime I try to take a look at game development, I feel like there is a lack of guidelines, mostly about architecture.
It's something strange to me as a web dev, as we use much of these patterns on a daily basis. Of course I think about the near omnipresence of MVC and its variants, but not just that. Most of frameworks we do use are essentially focused on architecture, and we litterally have access to unlimited tutorials and resources about how to structure code depending on projects types ans needs.
Let's say I want to code a 2D RPG. This has been done millions of time across the world now. So I assume there should be guidelines and patterns about how to structure your code basis and how to achieve practical use-cases (like the best way to manage hero experience for example, or how to code a turn-based battle system). However I feel these are much harder to find and identify than the equivalent guidelines in the web dev world.
And the old-school RPG case is just an example. I feel the same about puzzle games or 3D games... Sure there are some frameworks and tools but they seems to focus more on physics engine and graphic features than code architecture. There are many tutorials too, but they are actually reinforcing my feeling : like if every game developer (at least every game company) has his on guidelines and methods and doesn't share much.
So... Am I wrong ? Hope to.
What are the tools and patterns you can reuse on many projects ? Where can I find proper game architectures guidelines that reached consensus ?6
How the fuck does a community write an open source library/package that works wonders, but fail to write a proper documentation.
So many times I have to look into the core of frameworks, libraries and packages so form my own documentation in my head.
I guess I should be contributing too.
We are all to blame.1
After spending time trying to work in frameworks and new popular environments on my Windows machine(😵), I now don't hate ASP.NET.
After one too many Yak shaving experiences, I am just so happy that it doesn't break the moment I change something. 😭
Upgrading my tech skills.. Once again I feel my personal my personal dev environment and told are much more up-to-date than what I use at work.... Though the book Kim reading is on TDD and was written 3 years ago.
Maybe I should read another on in cloud services and ML... but don't have any motivation for these topics.
I need TDD for work because now we're emphasizing unit test coverage...
I usually only use manual functional tests to verify the final outputs as either the testing framework is broken (JS) or I don't have time to relearn the frameworks for the particular language...
Anyway got off topic... So questions after:
1. Do you ever feel your technologically always more ahead than what you do at work and essentially you bring skills to the job but you don't learn much out of it?
2. How do you test? I actually got into a bit of a argument/discussion with my colleagues about how to implement unit tests. Apparently there are 2 ways to test? Black box vs WhiteBox. She said she tests only Public methods using mock inputs, dependencies. She read online and seems there is an opinion that should only test public functions and if you can't then your app is designed incorrectly, not separated enough.
For me I test the private functions individually (WhiteBox/Java reflection) because the public one is like generateReport and as a whole is like a Pachinko machine, too many unique paths that would need a test case for.
So thoughts? Yes sorry for turning it into a remake I guess...25
I’ve made a list of things I want to learn. Languages, frameworks, etc and i don’t really have too many things on the list that way I can learn them well.
I’ve been struggling with this choice because I’m honestly not sure whether or not I should consider Rust to be on the list.
I like the modern features it contains, and I don’t mind the syntax.
I don’t like it’s way of memory management, I’ve heard it’s performance can be very lacking, and I’ve heard a lot of negative things about the compiler and the efficiency of the language (although I feel like efficiency comes down to the person and how the code is written)
So please redpill me on Rust and try to convince me to add it to my list because it’s close.2
JS is such open language with too many frameworks and too many libraries. Takes lot of time choosing good code to use.
To create my own php framework or just use some existing frameworks?
Existing frameworks has too many bootloaders -_-1