Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      Sunshine And March Vibes (2025 Wallpapers Edition)

      May 9, 2025

      The Case For Minimal WordPress Setups: A Contrarian View On Theme Frameworks

      May 9, 2025

      How To Fix Largest Contentful Paint Issues With Subpart Analysis

      May 9, 2025

      How To Prevent WordPress SQL Injection Attacks

      May 9, 2025

      Your password manager is under attack, and this new threat makes it worse: How to defend yourself

      May 9, 2025

      EcoFlow’s new backyard solar energy system starts at $599 – no installation crews or permits needed

      May 9, 2025

      Why Sonos’ cheapest smart speaker is one of my favorites – even a year after its release

      May 9, 2025

      7 productivity gadgets I can’t live without (and why they make such a big difference)

      May 9, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      Tap into Your PHP Potential with Free Projects at PHPGurukul

      May 9, 2025
      Recent

      Tap into Your PHP Potential with Free Projects at PHPGurukul

      May 9, 2025

      Preparing for AI? Here’s How PIM Gets Your Data in Shape

      May 9, 2025

      A Closer Look at the AI Assistant of Oracle Analytics

      May 9, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      kew v3.2.0 improves internet radio support and more

      May 9, 2025
      Recent

      kew v3.2.0 improves internet radio support and more

      May 9, 2025

      GNOME Replace Totem Video Player with Showtime

      May 9, 2025

      Placemark is a web-based tool for geospatial data

      May 9, 2025
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»News & Updates»CodeSOD: Dating in Another Language

    CodeSOD: Dating in Another Language

    April 23, 2025

    It takes a lot of time and effort to build a code base that exceeds 100kloc. Rome wasn’t built in a day; it just burned down in one.

    Liza was working in a Python shop. They had a mildly successful product that ran on Linux. The sales team wanted better sales software to help them out, and instead of buying something off the shelf, they hired a C# developer to make something entirely custom.

    Within a few months, that developer had produced a codebase of 320kloc I say “produced” and not “wrote” because who knows how much of it was copy/pasted, stolen from Stack Overflow, or otherwise not the developer’s own work.

    You have to wonder, how do you get such a large codebase so quickly?

    private String getDatum()
    {
        DateTime datum = new DateTime();
        datum = DateTime.Now;
        return datum.ToShortDateString();
    }
    
    public int getTag()
    {
        int tag;
        DateTime datum = new DateTime();
        datum = DateTime.Today;
        tag = datum.Day;
        return tag;
    }
    
    private int getMonat()
    {
        int monat;
        DateTime datum = new DateTime();
        datum = DateTime.Today;
        monat = datum.Month;
        return monat;
    }
    
    private int getJahr()
    {
        int monat;
        DateTime datum = new DateTime();
        datum = DateTime.Today;
        monat = datum.Year;
        return monat;
    }
    
    private int getStunde()
    {
        int monat;
        DateTime datum = new DateTime();
        datum = DateTime.Now;
        monat = datum.Hour;
        return monat;
    }
    
    private int getMinute()
    {
        int monat;
        DateTime datum = new DateTime();
        datum = DateTime.Now;
        monat = datum.Minute;
        return monat;
    }
    

    Instead of our traditional “bad date handling code” which eschews the built-in libraries, this just wraps the built in libraries with a less useful set of wrappers. Each of these could be replaced with some version of DateTime.Now.Minute.

    You’ll notice that most of the methods are private, but one is public. That seems strange, doesn’t it? Well this set of methods was pulled from one random class which implements them in the codebase, but many classes have these methods copy/pasted in. At some point, the developer realized that duplicating that much code was a bad idea, and started marking them as public, so that you could just call them as needed. Note, said developer never learned to use the keyword static, so you end up calling the method on whatever random instance of whatever random class you happen to have handy. The idea of putting it into a common base class, or dedicated date-time utility class never occurred to the developer, but I guess that’s because they were already part of a dedicated date-time utility class.

    [Advertisement]
    BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!

    Source: Read More 

    Hostinger
    Facebook Twitter Reddit Email Copy Link
    Previous ArticleNethSecurity is a Linux firewall based on OpenWrt, a distribution
    Next Article CVE-2025-1056 – Axis Camera Station Pro File Path Traversal Vulnerability

    Related Posts

    News & Updates

    Your password manager is under attack, and this new threat makes it worse: How to defend yourself

    May 9, 2025
    News & Updates

    EcoFlow’s new backyard solar energy system starts at $599 – no installation crews or permits needed

    May 9, 2025
    Leave A Reply Cancel Reply

    Hostinger

    Continue Reading

    Build a “button-to-modal” animation with GSAP

    Web Development

    Gecko Driver not navigating to URL

    Development

    Icelandic Frumtak Ventures closes fourth fund at $87M

    Development

    Tailwind’s @apply Feature is Better Than it Sounds

    News & Updates

    Highlights

    ERROR_CANT_ENABLE_DENY_ONLY: 5 Ways to Fix

    January 27, 2025

    ERROR_CANT_ENABLE_DENY_ONLY signals that you might have insufficient permissions to modify, save, or access a file…

    Exploring GitHub CLI: How to interact with GitHub’s GraphQL API endpoint

    April 22, 2025

    A Python script to verify file hashes

    June 4, 2024

    Feb 14, 2025: Development tools that have recently added new AI capabilities

    February 14, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.