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 - "patterns"
-
As a developer, sometimes you hammer away on some useless solo side project for a few weeks. Maybe a small game, a web interface for your home-built storage server, or an app to turn your living room lights on an off.
I often see these posts and graphs here about motivation, about a desire to conceive perfection. You want to create a self-hosted Spotify clone "but better", or you set out to make the best todo app for iOS ever written.
These rants and memes often highlight how you start with this incredible drive, how your code is perfectly clean when you begin. Then it all oscillates between states of panic and surprise, sweat, tears and euphoria, an end in a disillusioned stare at the tangled mess you created, to gather dust forever in some private repository.
Writing a physics engine from scratch was harder than you expected. You needed a lot of ugly code to get your admin panel working in Safari. Some other shiny idea came along, and you decided to bite, even though you feel a burning guilt about the ever growing pile of unfinished failures.
All I want to say is:
No time was lost.
This is how senior developers are born. You strengthen your brain, the calluses on your mind provide you with perseverance to solve problems. Even if (no, *especially* if) you gave up on your project.
Eventually, giving up is good, it's a sign of wisdom an flexibility to focus on the broader domain again.
One of the things I love about failures is how varied they tend to be, how they force you to start seeing overarching patterns.
You don't notice the things you take back from your failures, they slip back sticking to you, undetected.
You get intuitions for strengths and weaknesses in patterns. Whenever you're matching two sparse ordered indexed lists, there's this corner of your brain lighting up on how to do it efficiently. You realize it's not the ORMs which suck, it's the fundamental object-relational impedance mismatch existing in all languages which causes problems, and you feel your fingers tingling whenever you encounter its effects in the future, ready to dive in ever so slightly deeper.
You notice you can suddenly solve completely abstract data problems using the pathfinding logic from your failed game. You realize you can use vector calculations from your physics engine to compare similarities in psychological behavior. You never understood trigonometry in high school, but while building a a deficient robotic Arduino abomination it suddenly started making sense.
You're building intuitions, continuously. These intuitions are grooves which become deeper each time you encounter fundamental patterns. The more variation in environments and topics you expose yourself to, the more permanent these associations become.
Failure is inconsequential, failure even deserves respect, failure builds intuition about patterns. Every single epiphany about similarity in patterns is an incredible victory.
Please, for the love of code...
Start and fail as many projects as you can.30 -
A Java Development vacancy I came across today:
Requirements:
Must:
° Appropriate Education
° Work Experience with Java/Javascript knowledge, at least 2 years, good understanding of OOP, patterns
° Experience with Spring, NoSQL(MongoDB)
Preferably:
° Experience with Tomcat/Jboss/Glassfish
° JDBC, JSF, JSP, JSTL, Angular, ExtJS
° HTML5, CSS3, XML, Jquery, Bootstrap, Primefaces
° Hibernate
° Git/SVN
Objective:
° Implementation of specific requirements
° Cooperation with business analytics and clarification of reuirements
° Participation in the development of application architecture and technology selection
Who are they hiring?51 -
What my lecturer think I have learned:
- Programming Patterns
- C, C++, Java
- Socket programming, web programming
- Operating system...
What I have actually learned:
1. printf("Hello World");
2. echo "Hello World";
3. console.log("Hello World");
4. Console.Writeline("Hello World");
5. cout << "Hello World" >> endl;
6. System.out.println("Hello World");
7. puts "Hello World";
8. "Hello World"
9. write("Hello World");
10. Display "Hello World"10 -
Just interviewed a guy with ~8 years of experience:
Me: *Asked him to write a simple algo logic on a paper*
Him: I don't do much of algo design. I'm much of a design patterns and software design guy.
Me: How would you design a singleton class in Java?
Him: *writes a sloppy code*
Me: Hey, thanks for your time. Our HR will get back to you with further updates.
Moral: Interviews can be very short when the candidate doesn't code.15 -
I noticed that I frequently notice patterns in my ++ count
I may have a slight obsession with numbers. There are too many screenshots with numbers in my gallery
This is also kind of an evolution of my avatar and my ++ count19 -
Just finished reading this gem from start to end. It is over 20 years old and it is crazy how it is still up to date and applicable. Great work.8
-
90s devs: "Did you know about GOTO/CONTINUE for control flow? it's so convenient and powerful!"
00s devs: "GOTO is an antipattern. But did you know about try/catch? You can use it for control flow, just write a lot of exception classes, it's so powerful!"
10s devs: "Using exception blocks for generic control flow is an antipattern. But have you heard about event listeners and observer patterns? It's so powerful!"
Developers are so good at repackaging and reselling square wheels by giving them fresh, impressive sounding names.
😡18 -
To all the design pattern nazis..
Don't you ever tell me that something is impossible because it violates some design pattern! Those design principles are there to make your life easier, not something you have to obey by law.
Don't get me wrong, you should where ever possible respect those best practices, because it keeps your software maintainable.
But your software should foremost solve real world problems and real world problems can be far more complex than any design pattern could address. So there are cases where you can consciously decide to disregard a best practice in order to provide value to the world.
Thanks for reading if you got this far.6 -
FUCK!!! FUCK IT ALL. FUCK YOU AND YOUR CRAPPY BULLSHT UNDOCUMENTED AND OUTDATED API.
YOUR DATABASE SERVER BACK-END HAS TO BE THE ONE MANAGING THE DISPLAY DATA FOR ITS WEB AND MOBILE CLIENTS. NOT THE OTHER WAY AROUND, DAMN IT.
I'M NOT GONNA SIT HERE ALL DAY HARD-CODING ALL YOUR SERVER'S INADEQUACY.
MAKES ME WONDER DO YOU EVER USE DESIGN PATTERNS OR APPLY DESIGN PRINCIPLES? DRY AT LEAST? DON'T FUCKING REPEAT YOURSELF, DAMN IT.
I CAN'T WAIT TO LEAVE THIS PLACE FOR GOOD.6 -
Colleague: Hey want to get access to our repo so we can see each others code, collaborate, discuss design patterns etc?
Me: Yeah sounds like a great idea. Would love to get to know a bit more about how others are building mobile apps in the company.
Colleague: Heres the link to the iOS app: xxxxxxxxxx
*Opens link*
*looks around a bit*
*Opens cocoapods folder*
*Sees 89 dependencies*
Me: .......... actually, you know what, I have major deadlines coming up. I can't look at this right now. Lets talk in the new year.
*closes slack*5 -
I was interviewing a candidate for a senior UI dev position and I began to ask him stuff about closures, contexts, design patterns and others.
At some point, after failing to respond to most of the questions, the candidate looked at me and said something like: ‘I am amazed. You didn’t have a lot of toys when you were a kid. The PC was your only toy when you were a kid, right??’.
I looked at my junior colleague that was shadowing the interview and we couldn’t believe what the guy was asking. He was extremely serious and he was looking for a way to find an explanation for his failure.11 -
Impostor Syndrome at it's finest.
Any experienced developer knows writing good programs has very little to do with syntax and a whole lot to do with where you put it. If this guy actually did any work over his career he probably knows a ton about application architecture and design patterns without even realizing it.
source: https://quora.com/I-have-been-worki...2 -
I'm wondering, what's you guys/gals/linux kernels/however you identify yourself 'superpower'?
I think that nearly everyone has something which can be extremely useful (maybe not healthy) and which not many other people you know have.
In my case it's that i can manage with extremely variable sleep patterns and when needed, I can sleep very short for days in a row (3-4 hours a night) and I'm all good. Nearly all friends/family that I have NEED regular sleep patterns + at least 8 hours of sleep but i can very much manage without those. Very useful when having disruption service and stuff.
Please post yours in the comments if you're comfortable with that!39 -
*Me feeling productive on a day
Today I am going to start working on the complex part of my proect. Spends 1 hour deciding what all technologies to use , how to implement it, which design patterns to use .
Let's do it
*15 min later
Making some tiny css corrections
*3 hrs later
Making some tiny css corrections
*An eternity later
REALISED DIDN'T SET THE SIZE OF THE PARENT CONTAINER TO 100%
So much for thinking about being productive for today :(((5 -
2nd year of college, in computer science course and they're teaching us how to create star patterns using 'for loop'. Feels like 9th grade all over again (sigh)6
-
When I discovered Clean Code, design patterns, TDD and BDD. It just clicked. Ever since everything build so easy and obviously. I no longer have most of the code problems folks rant here about.
That's when it came to me: it's not enough to know how to write code. To climb off those amateur shoes I must adopt those methodologies, so that the code would be decoupled from me, from my style, and I've got to let tests drive my code rather than vice versa to have a flexible and reliable codebase that is cheap and easy to maintain/extend.40 -
You study PHP, OO, Design Patterns, TDD, Zend Framework, Laravel, AngularJS...
Then you find a job, it's Wordpress...5 -
Just give me a link to the web font man. Oh, there isn't one? You used a font that we can't legally use? Do you understand how that works? I don't want your 300MB photoshop document. I don't want to comb through your ridiculous stack of insane layers and artboards and deal with the images you didn't bundle into the project or try and make sense out of your arbitrary spacing and random font sizes. You're not an artist, you're just a crappy visual designer handing off an unthoughtful glorified wire-frame - and now I have to sort out all the things that you were paid to do. It's really easy. 1. Pick a color, 2. Pick 2 fonts that are legal and available to use on the web, 3. build a few patterns for font sizes and weights - write them down. 4. Pick your images. Make them double the size you expect them to be on the site + put them in a folder, 5. add readme and list the font patterns and the link to the webfont, 6. quickly scribble the wire-frame out, 7. take a photo of it, 8. put it all in a folder and send it to me.4
-
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 -
I worked on a web project a few years ago. I've refactored a large part of the architecture, added repositories to the business layer, implemented inversion of control and dependency injection etc. (took me 2 weeks).
There was a second developer in the project... he didn't understand the design patterns and the whole IoC/DI thing. Instead of asking or reading about it, he reverted all the changes while I was 3 weeks on vacation -.-4 -
Interview question:
"What are your three most favorite design patterns?"
Me: "Huh? They're tools in a toolbox. If I want to drive in nails I use a hammer or a nail gun. Do I need to cuddle with them? I don't pick favorites and I don't try to solve everything with just a bunch of patterns. And I've work with a bunch, right now I'm drawing a blank though as this question highly confuses me and would like to do a Google search listing a few names as the only one that's comming to my mind right now are the factory and builder pattern. And no, not necessarily favorites."3 -
I swear...in enterprise...doing things right is almost pointless. First off they punish you for it by insisting you use shitty outdated libraries and resources, making every request painful and a week long, and telling you "don't use any design patterns or good practices because the over seas third party people we hired won't understand it".
And ultimately those third party people are going to get a hold of your code and turn it to shit. So really...other than having pride and standards...just pile more shit on top of the other shit because it will all be shit soon enough.3 -
I was MEAN developer and moved to MERN developer.
My thoughts:
Angular very good framework BUT react + redux fucking awesome7 -
Serbia. $600/month for
- full stack
- angular dev
- java spring boot backend dev
- jenkins
- ci/cd pipelines
- jira
- unit integration E2E tests
- kubernetes
- docker
- graphql
- postgres
- sql queries
- aws
- microservices
- deployments
- scala
- kafka
- maven/gradle
- bsc or msc cs degree
- in depth knowledge of
-- observables
-- design patterns
-- jwt and how it works
-- ssl certificates
-- solid principles
There is more but i forgot the rest17 -
1. Read about software engineering/design patterns, tools etc.
2. Adopt information to my requirements
3. Write code
4. Delete my shitty code from point 3.
5. Goto point 34 -
Boss left. Now I'm the only c# developer left to maintain 137 projects at this company. I woke up to a flood of emails with 3 requests and 2 applications breaking because he was a shitty programmer and didn't understand layering and design patterns and unit testing. Fucking dear God help.10
-
...i just remembered why I have a MasturbatorPattern repository on my bitbucket, why is it named that way, and what it does.
It's one of the core abilities of that magical AI i've mentioned in my previous rant. And it's called that way, because of how it works:
The Agent has some objects (as in, class instances) available to it, and wants to get some other kind of object. So it inspects by reflection ("touches") all objects around itself, inspecting their public functions, building up a plan/path/tree of "this function takes the object I have as input, and returns this other object which this other function of other object takes as input and returns this different object, which...." etc, etc, until the final function returns the object the Agent wanted to get in the first place.
And then it goes and "does" all those functions, in that order piping the parameters through.
So first it touches them (second layer of metaphor - linux finger command), and then it does those which output (ejaculate =D) something useful to it.
Therefore, MasturbatorPattern =D
Not sure if my sense of humor is just weird or outright unfunny.8 -
You spend months coding an app, you refactor and restructure multiple times, you apply all sorts of smart patterns and algorithms you learned over all those years, you go back to the books even, you spend money on a ton of assets, localization, marketing, you spend time contacting hundreds of people that could boost your app in the ocean of apps. And once your app hits the store, people complain that $0.99 is too much.6
-
I've started logging my sleep patterns on a spreadsheet. Hoping to get some interesting statistics eventually.17
-
Bought some new books.
Hope they will help me in my private projects :D
They are for 2 different projects btw.9 -
Kotlin
All the languages have a basic objective in mind that shapes both the language and it's community:
for c/c++ was low level hardware access and performance, for Java OOP and learning; Kotlin was mostly made to make dev life easier and tries to anticipate what you want to do instead of forcing his patterns and tries to help you instead of punishing errors.
As a dev at least i feel a little more cared about and less left alone (especially in the ugly world of Java for Android)14 -
Wow, I just realized the marketing teams of most of the companies I have been dealing with are some cold sociopaths.
Every other letter that pops in the mailbox is filled with dark patterns trying to guilt me into opting in to their continued spam:
Subject: Most awesome husky puppy!
Look at this beautiful husky puppy. Isn't it beautiful.... It would be sad if something happened to it... But I am afraid... Something will happen to it...
If you don't opt in to our email message... I am afraid we have no choice... We have to kill this puppy. End it's life... We have no choice. I wish we did! Nothing would please us more than keeping this beautiful-beautiful puppy living and playing....
But if you don't opt in... We have to cut it's throat. Leave it lying on the ground, bleeding out as the life slowly fades away from it's pretty blue eyes...
And Remember: it's not us who killed it... IT WAS YOU! YOUR ACTIONS LEAD TO THE DEATH OF THIS PUPPY! YOU.... YOU FILTHY MURDERER!
Pls opt-in ok, then we are all good. Puppy lives! Just opt in. Ok? Yeah, you know what you have to do.3 -
So I'm a perfectionist, especially when with code, smells, solid, design patterns, naming conventions, etc and I be have this co-worker that blackmails me every time he doesn't want to do something saying "I don't know it so my code is gonna be ugly".6
-
The worst part has to be you always compromise on your health just because your brain is telling you to solve a code block. You ignore your basic necessities, resulted in irregular patterns of sleep, skipping food and so much more.
Trying to maintain code which was written long back and alot of it has deprecated.
Yes you need to sit your ass down and write the whole thing again. -
"Learn PHP! nearly 90% of the web is done in PHP"
That's EXACTLY the reason you DON'T want to work with PHP. Tutorials, SO answers, blogs, every source of info is FULL with bad practices, horrible patters or no patterns, spaghetti code... Most PHP devs are web scripters who have absolutely no background on software engineering whatsoever.
Do yourself a favor, unless you plan to learn Laravel and stick with it, don't, do not, don't'm'st, don't'm'st've go with PHP ... just don't20 -
Patterns 👏 are 👏 a 👏 language 👏 to 👏 talk 👏 about 👏 design 👏 not 👏 a 👏 comprehensive 👏 list 👏 of 👏 the 👏 only 👏 things 👏 you're 👏 allowed 👏 to 👏 do 👏 in 👏 code.6
-
I think I'm not as socially awkward as I once believed. I realize I just have nothing in common with the majority of people.
I don't watch sports, I don't care about cars, or fantasy football, or have any hobbies non-developers would find interesting.
If you want to talk about software patterns, finite automaton, Lua/C APIs, etc, then fuck yeah I'll talk to you all day long.5 -
I am in love with regex (re in py)!
It is so damn cool!
Unfortunately, Python's find is faster.
But regex is so much better when it comes to complex patterns you would not be able to find with the regular (do you see the pun here? ;)) python's string object find method.4 -
I was looking at some poorly written code today in a project and I was curious to see who wrote it. I blamed it and found I had wrote it 6 months ago! smh Well... at least I know I'm getting better! I ended up refactoring it to use better code patterns.2
-
FYI. Copied from my FB stalked list.
Web developer roadmap 2018
Common: Git, HTTP, SSH, Data structures & Algorithms, Encoding
------
Front-end: HTML, CSS, JavaScript > ES6, NPM, React, Webpack, Responsive Web, Bootstrap
------
Back-end: PHP, Composer, Laravel > Nginx, REST, JWT, OAuth2, Docker > MariaDB, MemCached, Redis > Design Patterns, PSRs
------
DevOps: Linux, AWS, Travis-CI, Puppet/Chef, New Relic > Docker, Kubernetes > Apache, Nginx > CLI, Vim > Proxy, Firewall, LoadBalancer
------
https://github.com/kamranahmedse/...2 -
Typical code life?
1. Write rough comments
2. Write more detailed comments
3. Write pseudo code
4. Write semi-working but definitely ugly code
5. Write working but very ugly code
6. Refactor the code to be nicer, check for patterns, bottlenecks and other bits and pieces
7. Push to git the "final" code
8. After few months blame whoever wrote the code
9. Refactor all the things!
---
This happened in my career more than once and still - it seems like the best option out there to get things done. What do you guys think? Should something be added/removed from this? Is this over-complicated or what?2 -
-Writes a function that I'm going to schedule for django.
-works in development.
-adds it to production cron using django-crontab
-not working.
-spends 3 hours editing code, searching for similar problems and reading documentations but find nothing wrong and it's still not working.
-maybe it's django-crontab so I decide to just write a custom management command and call it through cron.
-still not working.
-calls function using what I'm telling cron to do.
-everything works.
-?????????
-adds logs to cron command (sorry for not making it earlier)
-mfw the code is not working because I imported 'patterns' in urls.py which has been deprecated since django 1.8 -
Refactoring! Refactoring! REFACTORING!
This is one of “those desk books” that you gotta have imo. Personally I love giving names to categories of things, helps us better recognize patterns if we can classify them.
Software can always be improved, this book give you a good majority of the most common refactorings it’s like a recipe book almost.. shows you the code smell... give you the detailed recipes to fix it. Great to have in code reviews.
Doesn’t matter that this book is in JavaScript the concepts and ideas are the big pictures in this book.
Classic “one of those” books.21 -
Music. Music teaches you numbers, creativity, patterns, structure, and basically primes your brain for math and creativity in that space. In addition, it teaches you how to think both within a structure and outside the box, as well as the importance of repetition, memorization, and learning a new language.
Music really was my second language, and the ability to read/write it fluently is a skill that takes a long time to master. I really believe that it increases your brain plasticity so much.4 -
There comes a moment in every developer's life when he thinks about reading Design Patterns (GOF).1
-
I was assigned to maintain the website as full stack dev but the code from backend is horrible previous devs didn't use SOLID principle, DRY, KISS, or Design patterns. I had to adjust from OOP mindset to Procedural its hard to debug in this state.3
-
I'm a junior dev less than 1 year into my first job out of college. I'm halfway done reading Clean Code (my first software book out of college) and I'm really enjoying it!
What should I read next? I was thinking something about design patterns. Should I go for the classic GoF book or continue with Robert C Martin and read "Agile Software Development, Principles, Patterns, and Practices"?9 -
!rant
Just deleted 6 files and simplified a process significantly, omg it feels so good to throw stuff out
My product owner was once under the impression that writing more code was something I enjoyed doing, but it couldn't be farther from the truth.
Writing new solutions and patterns is fun, adding anything other than that is just more future maintenance work1 -
As a web designer/developer I hate this recent trend of very light gray text fields on forms that have a white background. I don't want to have to peer at my screen for objects. My vision is average, so why would a client want this?5
-
Recently did a food intolerance IgG test and turns out I am dairy intolerant. Fcking dairy intolerance might have been the reason for all that fatigue and massive migraines which I had for the past few years. Cutting out all of it and hopefully that will improve my health in the next few weeks. Previously I tried lots of other shit (changing habits, leaving stressful work environment, fixing sleep patterns, cutting caffeine smoking alcohol you name it) and turned to this test as a last resort.6
-
Great, I'm in the zone.
Typing like there's no tommorow.
The logic is flawless, design patterns and exception throwing everywhere
It's going to be gre.... DUN.
OH GOD A BSOD.
ARE YOU FUCKING KIDDING ME.
Breath slowly... Just restart the machine...
PLEASE WAIT WHILE WINDOWS INSTALLS THE UPDATES
(ノಠ益ಠ)ノ彡┻━┻2 -
I hate:
- Enterprise patterns
- Enterprise type programming
- Dependency hell
- Logging hell
- Proxy hell
- Debugging hell
That will be all.7 -
SOLID and KISS principles are necessary when building enterprise apps. Some people don’t think about design and make things complicated when it should be simple. 😒1
-
"What are the four pillars of OOP?"
Me:(I'm not an OOP guy, but focused on design patterns)
1. Encapsulation
2. Abstraction
3. Polymorphism
4. ??(was it inheritance or composition).
Fuck, Because of the phrase "composition over inheritance". I've been mixing both composition and inheritance at the same time.9 -
In 1896, Percival Lowell saw straight channels on Venus. He was excited, because he'll gonna get reach — at that time, the award was in place for anyone who finds intelligent life on any other planet but Earth and Mars.
Why Mars? Because astronomers were seeing straight channels there too.
But bright Venus made this clear once and for all.
The patterns astronomers were seeing...
...were their own eyes.2 -
Look at other peoples code, analize it, absorb patterns, let those patterns replace the shit I have to learn in school, review code, code with those patterns, feel weird, because something is missing, repeat3
-
Atleast make it random but cycling through ? Really ?? In it's presentation google assistant was presented as this amazing new Ai that used the latest and best machine learning algorithms and methods on the market. Don't get me wrong it's awesome it can predict patterns in my daily life and interactions but thats what machine learning does, we still didn't come very far with human-software interaction technologies have we ?5
-
I don't know how others feel about this but every time, when the fan are spinning at full speed as you turn on the routers and they are in boot sequence.the stat lights on switch turning on/off in wave patterns
I'm like:
prepare to take off,
Initiate Countdown,
Take off in;T minus 30 second.4 -
This book isn't at all what I thought it was going to be. I hoped it would be patterns and practices to writing better code...it's more like a philosophical Chicken Soup for the Developer's Soul. Self-care for syntax geeks.
And by that merit, it's actually quite good. -
Why the fuck didn't I discover FreeTube earlier?
It's a YouTube client that's faster, without the dark UI patterns, with an integrated ad blocker, download feature and the settings that were always missing.
And all subscriptions are stored offline so you don't even need a fucking account.
(Not) Surprising how pleasant it can be to use when the UI isn't literal garbage.4 -
Maybe it's because I'm a pleb or because I was first taught Java, but, I only really know Object Oriented Programming patterns, what are the other types, uses, etc?10
-
It is easy to believe something is over-engineered as a junior. You open a solution and get slapped in the face with a wet fish of many classes, with strange names, doing very little, with everything coming together in ways you don't understand.
My advice is to learn about design patterns, clean code, clean architecture, and model driven design. Until that point I don't think you can make such a distinction. And indeed once knowledgeable of patterns and techniques as well as the domain, the same solution can look obvious, elegant and readable.
In a field where everyone is saying 'dont over-engineer', one must be able to tell if something is actually bad, or just uses techniques you don't recognise.
Telling your senior you think something is over done just because you don't understand it is not good. First learn techniques, understand the code, then form opinions that are at least relevant then.
From someone who committed that crime.4 -
Developers who think complex code is good.
"Oh, lookie here, I can swizzle methods and inject dependencies in the runtime!"
"Although we have no valid use case, let's use dependency injection and follow the commandory stateor patterns because I watched a video."
Just because you learn something new that looks cool does not make it practical, you tosser.1 -
hi, I'm a javascript developer, I like to take software design patterns from the 70s and present them as new ideas to front-end developers.3
-
Question: is it a red flag if I'm "not supposed to" blog about tips and tricks I've found at work (not even code level, just organization and general design patterns)? Reason given to me: "we need to be careful about due diligence and intellectual property for our investors to be satisfied". Am I working with idiots?9
-
Design patterns are not a catalogue for programmers problems.
The amount of brainless coders that just slap around these patterns because they were taught that it will magically solve everything is amazing.5 -
When you spend more time renaming variables, class names, properties etc.. to achieve perfect code and patterns rather than actually solving the problem. I'm bored now...
-
I find it so unbelievably satisfying to see trend patterns in the client launches from the user's that use my mod. Basically, every week the number of people using it grow, but it keeps the same rhythm.
Sunday most people of the week, Monday least people of the week; then building up to Sunday every day a little more. BUT then there's Thursday where a few people are taking an early night or something.
I guess the satisfying part is just that, however, how random and unique everyone thinks that they are. In a crowd - everyone together - shows a lot of patterns and similarities.1 -
Dear Java developers who has a fetishes with OOP and Design Patterns, and are now using Python:
Not every fucking thing you build has to be a class, a singleton or a factory. Specially in Python. Go with your boredom and boilerplate elsewhere.17 -
I did it y'all, I just put in two weeks. Goodbye tech debt, goodbye anti-patterns, goodbye constant firefighting.5
-
Those times when you feel that being a competent, reliable, hard-working developer just isn't good enough. When you feel you can't keep up with the pace of change in your sector and you're being left behind in terms of knowledge and understanding of all the new tools and frameworks and patterns and approaches. You're convinced you're soon going to lose your ability to contribute or architect anything new in your current role.8
-
I'm currently learning design pattern and was looking to understand the basic difference between Factory and Abstract Factory patterns. So the latter is typically used as a factory to procude factories...1
-
I come from a fuck-all university called Visveswaraya Technological University (VTU for short) and the syllabus is something from the 90s. Now modern technology 8s taught, old AF practices and useless subjects. Hell, we're not even taught design patterns.
So what would I like to change? The whole frikkin thing. My transition from college to corporate was *BAD* because the expectations were completely different.3 -
It baffles me that even now people still use ChatGPT to learn new things. LLMs are the antithesis of learning. They're inaccurate so you're left reasoning from flat out incorrect principles, they save you from encountering neighboring information to the answer you seek which is a central mechanic for developing a mental model, and the further away you are from common thought patterns the less their training applies which makes them fundamentally and unfixably terrible at detecting and correcting misunderstandings.38
-
So as you may know, I am job hunting. One company I found, called ruby, sounded interesting (the name helped). They were looking for data science type stuff.
I was about to apply when I got the feeling I should check the description. They were boasting about their flagship product.
Ashley Madison.
Needless to say, I burst out laughing and moved on.5 -
That this one component being object orientated is necessary and good design.
We have uh interfaces, theyre contracts.
Spoiler: it wasn't, I could have written it in half the code and half the time. But no, we gotta have those patterns, can't miss on dependency injection!6 -
Learning these design patterns literally feels like I'm bending my brain into positions it never thought it could fold...
Shit fuckin hurts. I feel enlightened at the same time though 😟🙌4 -
My life! What has it come to ?
(I'm primarily backend but I'm broke so I can't hire the frontend devs)3 -
On a previous job, my coworkers were jealous because I started going out for lunch some days of the week instead of staying with them at the office kitchen. So every time I went out, I came back to find some kind of small prank, and also a sign reading "Lunch Break Maffia Attacks Again". Once they made garlands by glueing/taping together a lot of sauce packets (mayonnaise, ketchup, and so on) in different patterns and decorated my whole box with them.
-
Mine was not CS but software engineering. I had been programming for 5 years, and I think anything before my degree was just so bad. No patterns or anything. It was really good in the way that I learned how to do things well, not exactly learning about the technologies. I also have an internship that I must do for at least 3 months before getting the degree which also helps.3
-
Non tech hobbies that helped me with developement:
Lego technic/mecano/knex were a great way to learn about abstraction, you build modules that you can reuse somewhere else.
Cooking is similar, you notice useful patterns that you can reproduce. E.g. roux, which is butter and flour is used for a lot of sauces, then add milk and you get béchamel, which is again used for a lot of sauces.
Coffee brewing helps because I can't focus if I don't get coffee.2 -
Ok I need a second post for this week. A tech lead decided to have a one on one meeting with me in public on the clients' floor where he decided to get angry at me (in public mind you) about using too many design patterns and inheritance because that "makes the code too hard to read. Instead use a lot of if-else's like I do." So not just is he an idiot, he did this in public on a floor with people who didn't know programming so now I look awful. I was furious.2
-
hilarious to me that people will resent a language or framework for a handful of quirks or "unique" patterns
yeah, give me a language or framework that doesn't
🤡🤡🤡🤡🤡🤡🤡13 -
I need some opinions on Rx and MVVM. Its being done in iOS, but I think its fairly general programming question.
The small team I joined is using Rx (I've never used it before) and I'm trying to learn and catch up to them. Looking at the code, I think there are thousands of lines of over-engineered code that could be done so much simpler. From a non Rx point of view, I think we are following some bad practises, from an Rx point of view the guys are saying this is what Rx needs to be. I'm trying to discuss this with them, but they are shooting me down saying I just don't know enough about Rx. Maybe thats true, maybe I just don't get it, but they aren't exactly explaining it, just telling me i'm wrong and they are right. I need another set of eyes on this to see if it is just me.
One of the main points is that there are many places where network errors shouldn't complete the observable (i.e. can't call onError), I understand this concept. I read a response from the RxSwift maintainers that said the way to handle this was to wrap your response type in a class with a generic type (e.g. Result<T>) that contained a property to denote a success or error and maybe an error message. This way errors (such as incorrect password) won't cause it to complete, everything goes through onNext and users can retry / go again, makes sense.
The guys are saying that this breaks Rx principals and MVVM. Instead we need separate observables for every type of response. So we have viewModels that contain:
- isSuccessObservable
- isErrorObservable
- isLoadingObservable
- isRefreshingObservable
- etc. (some have close to 10 different observables)
To me this is overkill to have so many streams all frequently only ever delivering 1 or none messages. I would have aimed for 1 observable, that returns an object holding properties for each of these things, and sending several messages. Is that not what streams are suppose to do? Then the local code can use filters as part of the subscriptions. The major benefit of having 1 is that it becomes easier to make it generic and abstract away, which brings us to point 2.
Currently, due to each viewModel having different numbers of observables and methods of different names (but effectively doing the same thing) the guys create a new custom protocol (equivalent of a java interface) for each viewModel with its N observables. The viewModel creates local variables of PublishSubject, BehavorSubject, Driver etc. Then it implements the procotol / interface and casts all the local's back as observables. e.g.
protocol CarViewModelType {
isSuccessObservable: Observable<Car>
isErrorObservable: Observable<String>
isLoadingObservable: Observable<Void>
}
class CarViewModel {
isSuccessSubject: PublishSubject<Car>
isErrorSubject: PublishSubject<String>
isLoadingSubject: PublishSubject<Void>
// other stuff
}
extension CarViewModel: CarViewModelType {
isSuccessObservable {
return isSuccessSubject.asObservable()
}
isErrorObservable {
return isSuccessSubject.asObservable()
}
isLoadingObservable {
return isSuccessSubject.asObservable()
}
}
This has to be created by hand, for every viewModel, of which there is one for every screen and there is 40+ screens. This same structure is copy / pasted into every viewModel. As mentioned above I would like to make this all generic. Have a generic protocol for all viewModels to define 1 Observable, 1 local variable of generic type and handle the cast back automatically. The method to trigger all the business logic could also have its name standardised ("load", "fetch", "processData" etc.). Maybe we could also figure out a few other bits too. This would remove a lot of code, as well as making the code more readable (less messy), and make unit testing much easier. While it could never do everything automatically we could test the basic responses of each viewModel and have at least some testing done by default and not have everything be very boilerplate-y and copy / paste nature.
The guys think that subscribing to isSuccess and / or isError is perfect Rx + MVVM. But for some reason subscribing to status.filter(success) or status.filter(!success) is a sin of unimaginable proportions. Also the idea of multiple buttons and events all "reacting" to the same method named e.g. "load", is bad Rx (why if they all need to do the same thing?)
My thoughts on this are:
- To me its indentical in meaning and architecture, one way is just significantly less code.
- Lets say I agree its not textbook, is it not worth bending the rules to reduce code.
- We are already breaking the rules of MVVM to introduce coordinators (which I hate, as they are adding even more unnecessary code), so why is breaking it to reduce code such a no no.
Any thoughts on the above? Am I way off the mark or is this classic Rx?16 -
"While a spectrum is defined as a function of frequency, a cepstrum is defined as a function of 'quefrency'. Quefrency is measured in 'time' and can be interpreted as a measure for time offsets of patterns in the time domain."
What in the actual fuck did I just read13 -
One of my favorite patterns in Java ✨
@highlight
public interface SocketOptions {
}
public enum UnixSocketOptions implements Options {
FOOBAR,
DAVE,
}14 -
Had a feedback meeting with one of my senior devs today, it went really well and allowed me to get a new view on some things, like some common behavior patterns I do. Really happy about it :3 If you didn't have something like this yet, go for it, it's definitely worth the time ^^
-
FredBoat, largest open source discord bot.
Making all the things work + making it scale when demand kept climbing was a challenge where we had to learn simple stuff like postgres, working with 3rd party apis, generally good coding patterns and maintainable code, but also rather advanced stuff like making the garbage collector play nice, profiling memory leaks and optimizing the hot path, as well as high level topics like cutting the codebase into scalable domains and services. -
No seriously, tell me more about how leveraging React-Native for sections of the app and creating these custom architecture patterns is going to revolutionise mobile development. I'm all ears.6
-
Thinggs to consider before adding non english letters/words to your url patterns:
1. Don't do it, you won't have a good time.6 -
Software engineering doesn't evolving the way you think of it.
There are no new big patterns. There are no new big concepts and ideas to bring that evolution to us. Rob Pike thinks that the concepts he used twenty years ago are the best possible way of implementing everything and he creates Golang.
The evolution of software engineering, and maybe the whole evolution as a concept is a tick-tock. Software engineering had its latest tick at nineties, when the concepts we call modern were developed. And the latest tock was the rise of the internet, and it given the single-computer-centered Von Neumann architecture really hard challenges. I mean ticks are theoretical inventions and patterns and ideas and etc, while tock is more of some practical, business-oriented implementations.
PHP is still in use. We have troubles with scaling and deployment. Banking systems still run old Java, Windows XP and even COBOL. We had persistence really, really long time ago, and now frontenders reinvent it and call it 'immutability'!
We had our tick many, many years ago. It's time for tock. With not only scientific but commercial use of things such as Clojure, CRDTs and maybe Rust lang, we are heading straight to our new big tock, which'll bring us new great problems to solve.
That's how any evolution goes.rant rust lang paradigms rob pike evolution golang ideas rust wk127 clojure patterns software engineering -
World wide health care system, the data will help every human on earth, that will enable us to understand the mystique patterns of human body.
-
I started making a library to get to know TypeScript. 4 days into the commits and I don't know if I made the best choice or the worst choice. I MEAN WHY CLASSES!! JAVASCRIPT IS MORE A FUCNTIONAL PROGRAMMING LANGUAGE THAN AN IMPERATIVE PROGRAMMING LANGUAGE! I DONT WANT TO NEW UP! I DONT WANT THE DEVELOPERS TO NEW UP! WHERE ARE THE DESIGN PATTERNS! I CANT FUCKING FIND IT!!4
-
!rant
What use is all my theoretical knowledge of patterns, structures and paradigms when I am too lazy and unconcentrated to actually sit down and get my ideas running? -
OpenAI in name only. At least rename the company fuckers.
Governments and three-letter agencies around the world will plan PSYOPS or SPECOPS using AI
Facebook, Google, or Amazon will use these models to study and predict your behavioral patterns.2 -
Anybody else likes stealth games?
Was playing styx yesterday and i noticed that i sit idle for minutes, observing patterns and sketching up the path i will take and then i just execute it. It felt like making an algorithm or training a model.6 -
That awkward moment when you're trying to find patterns to pin point trade ahead transactions on stock market and you realized that you were hired as Android developer.
-
No matter how many books I read on design patterns, there always comes a time when you've just got to toe punt a bull of mud across the line to meet a clients needs.
-
My biggest influencer? My Web Dev schools psychologist. Always scheduling breaks in our day.
He continuously reminded us it's a positive thing to walk away from the code and change up the brain patterns. -
God....
Bash and substitution patterns is character diarrhea.
And said Bash "script" consists of multiple shitton files with sources and Environment variables and other stuff that makes me wanna poke my eyes out and cram it into my arse.
Still shitty, but more tolerable.
I will have an clusterfuck of nightmares I guess.
All these # will gangup with the ~ and then the ? will start an knife attack to rip out their intestines. But all fails as the ! shred everything to bits by blasting it with anti tank sniper munition.
*dizzy*10 -
I discovered the Source Making website a couple weeks ago, it's awesome.
It gives you clear tutorials on the essential design patterns and refactoring techniques complete with example situations and code. Love it!3 -
StackOverflow veterans: "this is an elitist meritocracy, so play by the rules to earn reputation and practice the same gatekeeping behavior that we have established for years." Then they wonder why mostly white male US academic guys keep engaging in their community.
Yes, it's "stackoverflow again".
Another one of those sites you can't really avoid as a dev, too good to ignore, to bad not to get upset about. Maybe also a mirror of antisocial patterns still prevalent in society and especially in the developer industry.11 -
Today I spent 4 hours testbenching and enhancing an algorithm to detect certain metric patterns only to find out that the reason the anomalies weren't picked up correctly was that their metric had some -nan values I didn't check for.... FML2
-
Hey, would you mind trying this new powerful JS library?
It has really powerful abstraction over powerful features that compose powerful components using powerful patterns based on a powerful new asynchronous paradigm2 -
The creators of the Python language are giving some thought to a new proposition, PEP 622, that would finally bring a Pattern Matching statement structure to Python. PEP 622 proposes a method for matching an expression against various kinds of patterns using a match/case (simply like switch/case in C) language structure :
match some_expression:
case pattern_1:
...
case pattern_2:
...
It includes literals, names, constant values, mapping, a class or a mixture of the above.
Source : https://python.org/dev/peps/...6 -
https://news.mit.edu/2022/...
"Based on the patterns of brain activity that were observed, the group could tell whether someone was evaluating a piece of code involving a loop or a branch. The researchers could also tell whether the code related to words or mathematical symbols, and whether someone was reading actual code or merely a written description of that code."1 -
My brain= processor
Your mouth= raw data
I only process the logic that comes out of your mouth and typecast it to my system's logic and try to fit you in one of my objects using a visitor pattern.if I need to create a new dynamic object , my system throws a "you are special" message. -
Design patterns are to programming what cum swapping is to porn: The further it is carried, the nastier it gets, and at the end an innocent victim has to clean up the whole mess.4
-
I got exams coming up but all I want to do I get my hands dirty with kotlin, python and learn the java design patterns 😭1
-
!rant
Yesterday we ( me and few other students who showed up to lecture ) had an interesting bonus mini test at course about software architecture. At the end our proffesor showed us this youtube video
https://youtu.be/3XjUFYxSxDk
And the task was ... write which architectural patterns and styles best describe men's brain and which women's.
Just wanted to share this creative exercise1 -
It's my first rant. So please ++1 me.
Now my rant:
In this semester I had a subject about system architecture. In this class, we must learn Java script, C# (and ASP.NET framework ), PHP (and Zend Framework 2), but in the classes is taught only UML and patterns. In the moodle of the subject we don't have any information about any of the languages and if we ask the teachers they don't know anything.
And we need in 4 weeks do a work with a widget in javascript, 2 Asp.net mvc, 1 asp.net web api. All with authentication.
So we are all fucked10 -
Does anyone can recommend some JavaScript book's,websites for advanced usages, something with design patterns in it4
-
I read: "Don't change your implementation to do tests"
Then I read: "If it's too hard to test, your implementation is too complex"
Then we can get into test terminology itself, which is its own mess:
http://xunitpatterns.com/Mocks,%20F...
sheesh, if you thought the whole javascript / framework / web ecosystem always feels immature and behind other areas of software, i'm about to argue that testing patterns are even further behind8 -
I think it related to the app crashes, but now, instead of crashing, the app thinks it has no internet and loads forever things. Usually happens when I put the app in the background and don’t force close it.
Closing the app multiple times and switching to other apps fixes it, most of the time, not always.
But it still crashes. Less... but it still does, no specific patterns to see.
iPhone 6S2 -
If you have 5 classes using the same postfix... and inside, 4 methods en each, called EXACTLY THE SAME... Please, create at least an abstract class!! or else next week you'll have to make the EXACT same change 5 times!!! or more!!... I don't know man! just saying... Patterns exist for a reason!1
-
Math is like a language syntax. You understand the meaning of needed symbols and keywords, then you can write it the way you want.
Physics is like a framework. You have to understand how problems can be solved using patterns someone else thinks is the best way.
This is what I think when I should be reading for the big test of physics and math for upper secondary school.2 -
Any other people here that find Python to be actually a harder language than Java? With Java it's much easier to keep track of your code and to track what variables refer to certain object types.
It feels like Python has much more quirks and feels therefore much more inconsistent as a language. Object oriented programming is more verbose with static methods and decorators being vague for example. This makes it harder to grasp concepts like design patterns and SOLID principles in Python imo.7 -
How often do you use design patterns and which one most?
Please add your language in which you use them.7 -
I regret downloading too many Photoshop brushes, gradients, actions, patterns & etc.
Purging files at the moment.1 -
Please be gentle, first rant. :)
Can you please provide me with literature recommendations:
1. Books about software architeccture, design patterns and best practices in general.
2. "Relaxation" books related to developer's life experiences, something like "The Phoenix Project" (https://amazon.com/Phoenix-Project-...). I really enjoyed that. :)
I am aware that this is not best use of rants, but I would really like to hear this community recommendations. Thanks in advance. :)9 -
Every time I try and write C++ code, I end up getting annoyed with my approach and trying several different ways to structure my code before giving up and reverting to writing the exact logic I need in C.
It is most likely due to lack of experience with writing C++ programs, and one day I'm sure I will finally work out how to apply the right patterns at the right time and find it quicker and easier to write good code. But for now, I use C since it is very easy to bend into whatever shape I desire.4 -
The „UI-God“ in our team has never heard of dry or clean code.
Clashing classnames for modules in global namespace, gives a f* about patterns, naming conventions, structure and everytime I rebase it breaks my code.
I need the same amount of time fixing his work as he spends on it. -
Good friend, Jay. Helped level up my understanding over the years, JS patterns, using APIs, best practices, etc.
Also helped kill off anxiety about the community by proving we work together and share knowledge.
Many thanks and I hope everyone has a Jay in their life. -
7 days in, still can't get anything more than the infinitely seen tutorial GET / request working on a lambda function.
Oh, you've got something more complex, god forbid a POST handler? well, prepare yourself for days of suffering.
how far can you really go from standard software patterns?
Giving it about 20 more minutes and i'm going full self-managed, I don't have time for this shit
λ🤡6 -
Thought I'd print a useful article on JS design patterns....
Looks like I'll be messing with the CSS for a while!1 -
learn design patterns.
you can instantly understand where goes what and you can make sense of any large projects.2 -
Converting javascript/ typescript Map to json
or python date to json
or anything complicated to json is mostly ending with implementing serialization patterns
With date it’s so annoying cause we have iso standards that every language implemented or have libraries
so typescript doesn’t recognize Map<string, string> so you have to convert it to array and then to object
with python you need to make your own serializer / deserializer
So much waste of power usage that if only Greta know it she would say ‘how dare you!’
It can stop global warming.5 -
Hmm I wish I had some intuition when it comes to software architecture I guess. Being able to pick the right patterns and understanding what I'm doing.1
-
I learned to work with tools and platforms, instead of trying to re-write them and creating bugs for myself.
See: every hybrid tool ever.
This leaves me plenty of time to research new trends and patterns. -
Scala. The compiler is slow; sbt is buggy; too much syntactic sugar; implicits; cryptic; unreadable; and my biggest issue, symbols are reused and their use changes depending on how they are used, let's look at _:
As an existential type, as higher kind type parameter, as ignored variables, as ignored parameters, as ignored names of self types, as wildcard patterns, as wildcard imports, as hiding imports, for joining letters to punctuation, as assignment operators, as placeholder syntax, in partially applied functions, when converting call-by-name parameters to functions. -
I'm going to have to learn about patterns in programming.
Structural and behavioural ones.
I know of several, but I'd love to hear some real-life use cases from y'all, if y'all don't mind.4 -
Even if he's a younger guy than most other examples, my mention is:
Jordan Walke
He's the inventor of React, which probably changed the way to write (web-)apps for a lot of people and was based on a prototype written in StandardML.
He's also created ReasonML which is not only in many ways a more fitting language to write React, but also a good systems language (props to OCaml and it's unbreakable type system). Many React concepts/patterns have their origins in functional language concepts, including reducers and hooks.3 -
What do i do?
I worry about problems that don't exists yet. Look for breaches that are not made. And am pissed off at things that are slow but I've never used them. -
One of the most annoying things I find about being in the field of Computer Science: you have to read thick book after thick book, just to stay ahead or on par with technology.
Oh, technology x came out. New item appears in to-do storyboard: "read book x". Oh, only 900 pages huh? Oh, deadline this week huh? There goes my weekend.
What's this? After having read book x, now I have to read book y and also read about design patterns again?
Sigh.17 -
TeamLeader : "Come two seconds"
TL : "I'd like you to check that out when you do that"
Me: "But it's your job to do this"
TL: "Yeah, but I'd like you to just check in case I forgot"
THEN DO YOUR FKING TASK PROPERLY WHATS THE POINT IF YOU FORGOT AND I DO IT
Edit my english sucks1 -
Ok, let's do the opposite (reference to a previous rant).
Should a frontend developer know about:
- Data structures and algorithms?
- User interface design patterns and usability?
- User experience heuristics?
- Accessibility?
- Design tools?
- How websites work on the browser after the frameworks have done their job?
- Data flow, and artifacts like user stories?13 -
Setter and getter are anti-patterns. Eradicate all of them from your code with no mercy and you'll see your code magically transform for the better.5
-
I keep obsessing about the time. I keep looking for patterns as the day goes on. I noticed the other day that these patterns for time have math relationships in each:
15:18:21 ie 15 + 3 = 18 and 18 + 3 = 21
03:18:21 ie 3 + 18 = 21
One time is morning at 3 am the other is evening at 3 pm. I cannot stop looking for these.
Is the descent into madness?6 -
Friday wisdom.
Software is not written. It is rewritten.
After spending 3 days approx. On thinking over a design problem. The first 2 days I was clueless how the problem is going ahead. Today I deleted all classes started again and voila.!! It works like magic and I did it with a TDD approach so got good test coverages too.
P.S. I didn't come up with that line. I got it from a tech talk and now understood it's meaning.3 -
Eureka! I have done it! I have written a program that will replace 80% of programmers with an AI!
The approach is to use grammar identification with language heuristics to recognize solution patterns using multilayered neural networks. The code source uses trusted pattern samples that are scored by human programmers. The code is programmed using text duplication and placement from the trusted sources.
TLDR: Uses pattern matching to copy and paste from Stack Overflow.1 -
fuck fuck fuck fuck fuck
cones have cellular automata patterns
fuck
why it is so creepy
how
why
fucking matrix7