NDepend Blog

blog.ndepend.com · Company blog · on HN since 2015

The blog of NDepend, a .NET code analysis tool, with posts on .NET performance, code quality, legacy code, and testing.

What HN saysHN commenters link it for .NET 9 LINQ performance, architecture diagrams, and Blazor download size, and one cites its post on lines of code per developer day.
22HN people shared it
5linked it in comments
30stories submitted
1.0Kstory points
11 months agolast shared
2015people per year2026

Most-shared posts

  1. 1
    Mythical man month: 10 lines per developer day
    2 people · 280 points · first shared 2020 · 207 comments on HN
  2. 2
    Net 9.0 LINQ Performance Improvements
    2 people · 203 points · first shared 2024 · 216 comments on HN
  3. 3
  4. 4
    Is There a Correct Way to Comment Your Code?
    2 people · 5 points · first shared 2017 · discussion on HN
  5. 5
    Relax. Everyone’s Code Rots
    2 people · 4 points · first shared 2015 · discussion on HN
  6. 6
    .NET 5.0 – New APIs
    1 people · 172 points · first shared 2020 · 142 comments on HN
  7. 7
    Managing your manager when it comes to legacy code
    1 people · 88 points · first shared 2016 · 41 comments on HN
  8. 8
    What to Do When Your Colleague Creates Spaghetti Code
    1 people · 78 points · first shared 2016 · 74 comments on HN
  9. 9
  10. 10
  11. 11
    A Manager's Guide to Legacy Code
    1 people · 2 points · first shared 2016 · discussion on HN
  12. 12
  13. 13
  14. 14
  15. 15

What HN people wrote when they linked it

DeathArrow · 2024-10-24
I am talking about IEnumerable, not IQueryable: https://blog.ndepend.com/net-9-0-linq-performance-improvements/
easygenes · 2021-10-07
NDepend seems to be rather sophisticated in this regard: https://blog.ndepend.com/visualize-code-with-software-architecture-dia…
ablekh · 2020-11-10
In the .NET context, browser-targeted deployments can have a minimal download overhead of around 2 MB, which is a far cry from 50 MB. How? Blazor. For details, see https://blog.ndepend.com/blazor-internals-you-need-to-know.
kragen · 2025-12-15
Yes, 11 lines of debugged, delivered source lines of code written per day is within the normal range. The basic COCOMO model used by David A. Wheeler's "SLOCCount" estimates person-months as 2.4 * (KSLOC**1.05), which was calibrated with painfully-won experience on a variety of software projects in the 80s. If you approximate that as 2.4 months per kSLOC, it works out to 13.7 lines of code per calendar day, or 18.5 lines of code per workday. Other studies found lower speeds. Like 10: https://softwareengineering.stackexchange.com/questions/450695/where-d… Every programmer thinks this is stupid the first time they see it, because we can all remember times we wrote 50 or 100 or 200 or 300 lines of code in a day, and that code worked. But other days we write zero lines of code, because we spend them in meetings, or debugging code, or arguing about the protocol design, or testing hardware we need to support, or testing our code. And sometimes we'll spend a week refactoring the codebase to reduce the number of lines of code (https://www.folklore.org/Negative_2000_Lines_Of_Code.html) so those 200 or 300 lines of code may not end up in the delivered product—if they were ever intended to, since test stubs and test scripts also don't count as delivered code. And that's how we get to Peter Naur's "Programming as Theory Building": https://ratfactor.com/papers/naur1 because writing the code clearly isn't the…
pmarreck · 2019-06-20
> I have found myself tending more and more towards a style where I break even some relatively small modules up into fairly small pieces, and I have very, very clearly specified definitions for "what this module consumes" and "what this module provides". I have found this exact thing to be a very natural fit for functional programming. Which is also why I switched from Ruby (where I was already starting to write in a functional style anyway, for these exact reasons) to Elixir (which basically tries very hard to prevent you from writing in a non-functional style while also giving you guarantees that are simply not available in a mutable procedural/OOP language). The vast majority of application code can be rewritten in such a way that it takes some struct or data, and spits out some struct or data, and has no other side effects (which include mutating the structs or data originally given to it). You can confine the side-effecting code to its own interface code... a principle embraced by https://blog.ndepend.com/hexagonal-architecture/ (also a natural fit for functional languages, but can also be utilized in OOP) The advantages of this design end up being numerous: easier unit-testability, easier reasonability, easier maintainability, fewer dependencies, fewer bugs generated.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close