Programming Tips 💡
51.5K subscribers
67 photos
10 videos
30 files
354 links
Programming & AI:
Tips 💡
Articles 📕
Resources 👾
Design Patterns 💎
Software Principles

🇳🇱 Contact: @MoienTajik

🎯 Buy ads: https://telega.io/c/ProgrammingTip
Download Telegram
The guide to Git I never had 🎯

Understanding Git is crucial for any developer. Often overlooked in CVs, mastering Git's capabilities enhances your coding proficiency significantly. This guide covers everything from basic commands to advanced techniques, ensuring you can manage and track your code effectively. ✔️

In this comprehensive guide, we delve into branches, commits, merging, rebasing, and more to help you master this essential tool. ⚡️

[ Article ]: https://medium.com/@jake.page91/the-guide-to-git-i-never-had-a89048d4703a

〰️〰️〰️〰️〰️〰️
#Git #VersionControl
@ProgrammingTip
5 Rules for Writing Better and Cleaner DTOs 🧹

Crafting clean and maintainable DTOs is essential for keeping your codebase healthy and scalable. But let's face it, sometimes DTOs can morph into these complex beasts that leave you scratching your head.  ‍

Fear not, fellow developers!

This article (or the accompanying video!) dives into 5 key principles to help you write simpler, more understandable DTOs.

You'll learn about:

• Keeping things clear and concise
• Utilizing properties effectively
• Crafting descriptive names that make sense

And also other tips to transform your DTOs from chaotic to crystal clear! By following these principles, you'll be well on your way to writing cleaner, more maintainable DTOs that make your code easier to understand for you and your team.

Ready to up your DTO game? Check out the full article or watch the video for examples and take your codebase to the next level!

[ Article ] : https://ardalis.com/5-rules-dtos

[ YouTube ] : https://www.youtube.com/watch?v=W4n9x_qGpT4

〰️〰️〰️〰️〰️〰️
#Dto #Dotnet #csharp #programming
@ProgrammingTip
🔗 Explore URL Shorteners: A Deep Dive

Curious about URL shorteners like TinyURL or Bitly? Dive into the fascinating world of system design with this comprehensive breakdown:

🎯 Scope & Requirements: Understand the functional and non-functional demands, from creating short URLs to ensuring low latency and high availability.

🔢 Estimation & Scaling: Learn how to calculate the ideal URL length and anticipate storage needs for projected growth.

🏗️ Architecture Overview: Explore key components of a robust URL shortener system, from load balancers to database layers.

🔧 API Design: Uncover essentials of designing a REST API, including endpoints for creating short URLs and seamless redirection.

💾 Database Management: Discover best practices for storing and retrieving shortened URLs efficiently.

Eager to deepen your understanding? Read the full article below.

[ Article ] : https://levelup.gitconnected.com/system-design-interview-question-design-url-shortener-c3278a99fc35

〰️〰️〰️〰️〰️〰️
#SystemDesign #URLShortener
@ProgrammingTip
OpenAI .NET 👾

The OpenAI .NET library provides convenient access to the OpenAI REST API from .NET applications. ✔️

The full API of this library can be found in the api.md file, and there are many code examples to help. For instance, the following snippet illustrates the basic use of the chat completions API:

ChatClient client = new(model: "gpt-4o", "OPENAI_API_KEY");

ChatCompletion completion = client.CompleteChat("Say 'this is a test.'");

Console.WriteLine($"[ASSISTANT]: {completion}");


The library is organized into several namespaces corresponding to OpenAI feature areas. Each namespace contains a corresponding client class:

AssistantClient
AudioClient
BatchClient
ChatClient
EmbeddingClient
FineTuningClient
FileClient
ImageClient
ModelClient
ModerationClient
VectorStoreClient


[ GitHub ] : https://github.com/openai/openai-dotnet

〰️〰️〰️〰️〰️〰️
#AI #OpenAI #DotNet #CSharp
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Designing APIs for humans: Object IDs 🧑🏻‍💻

Ever wondered why Stripe uses foloowing format to generate unique IDs? Let’s dive in and break down how and why Stripe IDs are structured the way they are:

pi_3LKQhvGUcADgqoEM3bh6pslE
└┘└────────────┘
└─ Prefix └─ Randomly generated characters


You might have noticed that all Stripe Objects have a prefix at the beginning of the ID. The reason for this is quite simple: adding a prefix makes the ID human readable. ✔️

Without knowing anything else about the ID we can immediately confirm that we’re talking about a PaymentIntent object here, thanks to the pi_ prefix. This helps Stripe employees internally just as much as it helps developers integrating with Stripe.

$pi = $stripe->paymentIntents->retrieve(
$id,
[],
['stripe_account' => 'cus_1KrJdMGUcADgqoEM']
);


The above snippet is trying to retrieve a PaymentIntent from a connected account, however without even looking at the code you can immediately spot the error: a Customer ID (cus_) is being used instead of an Account ID (acct_). 🔖

Without prefixes this would be much harder to debug; if Stripe used UUIDs instead then we’d have to look up the ID to find out what kind of object it is and if it’s even valid. 👨‍💻


[ Read More ] : https://dev.to/stripe/designing-apis-for-humans-object-ids-3o5a

〰️〰️〰️〰️〰️〰️
#UUID #Stripe
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
NetPad 🔥

A cross-platform C# editor and playground.

NetPad is a C# playground that lets you run C# code instantly, without the hassle of creating and managing projects. Open NetPad, start coding, hit Run, and see your output immediately. It's that simple. ✔️

• Prototyping and Testing:
Quickly prototype and test code snippets before incorporating them into your projects.

• Data Visualization: Visualize data interactively for better insights and analysis.

• Database Queries: Query databases using LINQ or SQL effortlessly.

• Learn and Experiment: Experiment with new C# features or start learning C# in an intuitive and accessible environment.

• Utility Scripts: Create and save your own utility or administration scripts for repeated use.


[ GitHub ] : https://github.com/tareqimbasher/NetPad

〰️〰️〰️〰️〰️〰️
#NetPad #Linqpad #CSharp #DotNet
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
In recent years, there is a lot of interest in the techlead role in software development. There are many discussions about what the role is and what it is not. Some articles explain it as CTO, some see it as a lead software developer, and some consider as a fully separate role in the team. While there is no clear agreement on techlead definition in the industry, one thing is certain: being a techlead requires strong technical skills and deep expertise with a good mix of leadership and other soft skills.

The only way to effectively grow in this area is continuous learning in system design, architecture, engineering practices and self-imrpovement in communication and presentation skills, leadership, conflict resolution.

If you're a techlead or thinking about becoming one, you should definitely check out the @techleadbits channel. They break down useful articles, books, videos, and share personal experience from a techlead's life. It's full of insights and tips that can really help you grow in this role.
Today we launched MenuDish 🎉

The idea came from a problem we’ve all faced: When traveling abroad or moving to a new country, reading restaurant menus can be a challenge. You might not understand the language or recognize the dishes, and searching for every item on Google gets frustrating. 🤷🏻‍♂️

We wanted to make this easier. With MenuDish, you just take a photo of the menu, and it creates a digital version with images of the dishes. It’s quick, simple, and saves time.

We built this app because we’ve been in those situations, and we hope it helps you too! 🍕


Download for iOS: https://apps.apple.com/us/app/menudish/id6621264757

Download for Android: https://play.google.com/store/apps/details?id=ai.menupix&hl=en

〰️〰️〰️〰️〰️〰️
#MenuPix
@ProgrammingTip
I Built a .NET App Using AI (with Cursor) - This Is Amazing

Discover how Cursor AI can transform your .NET development workflow! 🚀

In this video, you will see how this AI-powered code editor can help you write better code faster, understand complex codebases, and automate repetitive tasks. Whether you're a seasoned developer or just getting started with .NET, Cursor's AI capabilities will change how you think about coding.


[ YouTube ] : https://youtu.be/5hyRBuW560c

〰️〰️〰️〰️〰️〰️
#AI #Cursor #DotNET #CSharp
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
📢 The Web App Platform for .NET Developers

🚀 What is ABP.IO?

ABP is a powerful platform that gives .NET developers the infrastructure, tools, and modular architecture to build business solutions faster, using modern practices. It makes development easier, more enjoyable and production-ready.


🧩 Speed Up with ABP Modules

ABP’s modular system gives you pre-built, production-ready features 🔝:

• Identity – User & Role Management
• SaaS – Multi-tenancy, Subscriptions, Feature Management
• Payment – Simplified Transaction Handling
• Many more features like Audit Logging, File Management, CMS Kit, and Chat.

Don’t start from scratch. Build faster and smarter with ABP.IO!

[ Website ] : https://abp.io
A Structured Roadmap to Master Software Testing for Developers 🚀

Struggling to navigate the world of testing? 💭
I’ve compiled a comprehensive roadmap to help developers learn testing concepts systematically—whether you're a beginner or looking to fill gaps in your knowledge.

🔍 What’s Inside?
Core Testing Concepts (White/Gray/Black Box)
Test Design (Equivalence Partitioning, Boundary Analysis, etc.)
Naming Standards
Patterns (AAA, Four-Phase, BDD with Gherkin)
Test Types (Unit, Integration, E2E, Performance, etc.)
Tools & Frameworks (xUnit, Playwright, K6, AutoFixture, etc.)
Best Practices (Clean Test Code, Test Smells, Coverage)
Static Analysis & CI/CD Integration


📌 Highlights
Self-assessment friendly → Track your progress.

Language-agnostic → Examples in .NET, JS, Python, PHP.

Practical focus → From TDD/BDD to CI/CD pipelines.


[GitHub] : https://github.com/hasanxdev/Test-Roadmap-For-Developers

〰️〰️〰️〰️〰️〰️

#Test #Roadmap #UnitTest #IntegrationTest

@ProgrammingTip
Build a Model Context Protocol (MCP) Server in C# 🧠

Learn how to create an MCP server using .NET 8 and ASP.NET Core! ⚡️

This guide walks you through building a server that can interact with AI models via the Model Context Protocol — a standard for managing model prompts, memory, and tools. Great for AI agent developers! 🤖🧠


[ Blog ] : https://devblogs.microsoft.com/dotnet/build-a-model-context-protocol-mcp-server-in-csharp

〰️〰️〰️〰️〰️〰️
#AI #MCP #dotnet #csharp
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
C# 14 - Extension Members 🚀

C# 14 adds new syntax to define extension members. The new syntax enables you to declare extension properties in addition to extension methods. ✔️

You can also declare extension members that extend the type, rather than an instance of the type. In other words, these new extension members can appear as static members of the type you extend.

The following code example shows an example of the different kinds of extension members you can declare:
public static class Enumerable
{
// Extension block
extension<TSource>(IEnumerable<TSource> source) // extension members for IEnumerable<TSource>
{
// Extension property:
public bool IsEmpty => !source.Any();
// Extension indexer:
public TSource this[int index] => source.Skip(index).First();

// Extension method:
public IEnumerable<TSource> Where(Func<TSource, bool> predicate) { ... }
}

// extension block, with a receiver type only
extension<TSource>(IEnumerable<TSource>) // static extension members for IEnumerable<Source>
{
// static extension method:
public static IEnumerable<TSource> Combine(IEnumerable<TSource> first, IEnumerable<TSource> second) { ... }

// static extension property:
public static IEnumerable<TSource> Identity => yield return default;
}
}


The members in the first extension block are called as though they're instance members of IEnumerable<TSource>, for example sequence.IsEmpty. The members in the second extension block are called as though they're static members of IEnumerable<TSource>, for example IEnumerable<int>.Identity.


[ Blog ] : https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/extension-methods

〰️〰️〰️〰️〰️〰️
#csharp #dotnet
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
How to use MCP in n8n to scale AI automation? 🤔

We break down exactly what n8n and MCP are and demonstrate why using them together is a game-changer for automating tasks that require AI interaction. Combining the flexibility of n8n's visual automation with the power of MCP (Model Context Protocol) allows you to build incredibly sophisticated, AI-driven processes.

This tutorial is your complete guide to setting up n8n and MCP on a secure and reliable Hostinger VPS.


In this video, you'll learn :

• What n8n is and how it simplifies workflow automation
• What MCP is and why it's key for AI agents
• The benefits of using n8n and MCP together for standardized AI automation
• How to install n8n on a Hostinger VPS
• Setting up the MCP Server Trigger within your n8n instance
• Configuring MCP Client Tools for AI interaction
• Building a practical n8n workflow that utilizes MCP to connect to external services
• How to test and launch your new AI-powered workflow


💡 Use code PROGRAMMINGTIPS to get an extra 10% OFF your Hostinger VPS plan:
👉 https://www.hostg.xyz/SHHOl

📺 [ Watch the tutorial ] : https://www.youtube.com/watch?v=p5B1XHbe3lg
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Cursor can now make to-do lists, search PRs, and queue messages 👾

[ Blog ] :
https://cursor.com/changelog/1-2

〰️〰️〰️〰️〰️〰️
#AI #Agents #Cursor
@ProgrammingTip
💡 Tip

Before expecting an LLM to handle a complex task, use this litmus test:

Could a human expert — who knows all relevant general knowledge by heart — complete the task in a single go without backtracking, editing, or note-taking?

If not, the prompt may exceed what’s reasonable for an LLM today.


📘 From Prompt Engineering for LLMs: The Art and Science of Building Large Language Model–Based Applications


〰️〰️〰️〰️〰️〰️
#AI #LLM #PromptEngineering
@ProgrammingTip
The Hidden Cost of DateTime.Now in .NET 🕰

You're Using DateTime.Now — and It's Breaking Your Code …

Let's be honest: We've all written this:
if (DateTime.Now > token.Expiry)
{
return Unauthorized();
}


It works… until it doesn't.

In production, this little line can wreck your logic due to clock drift, time zone shifts, or mocking nightmares. 🐞


[ Article ]
: https://freedium.cfd/https://medium.com/@yaseer.arafat/the-hidden-cost-of-datetime-now-and-what-every-net-developer-should-use-instead-8859863257a1

〰️〰️〰️〰️〰️〰️
#dotnet #csharp
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
🖼 Gemini’s Nano Banana

Google just introduced Nano Banana, a new image-editing feature powered by Imagen 4. 🍌

🔹 Merge multiple photos seamlessly
🔹 Apply style & texture transfers
🔹 Edit backgrounds and objects with natural prompts
🔹 Generate high-quality visuals in seconds

Why it matters:
For developers and designers, Nano Banana is a fast way to prototype visuals, explore UI ideas, and experiment creatively without heavy tools.

You can use Nano Banana directly inside Gemini. 🚀


[ Read More ] : https://gemini.google/overview/image-generation

〰️〰️〰️〰️〰️〰️
#AI #Gemini #Google
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Jetbrains Grazie: AI writing companion for people in tech 🚀

If you spend more time writing documentation, commit messages, blog posts or support tickets than you’d like, JetBrains just launched something you’ll want to try: Grazie.

It’s an AI writing assistant built for people in tech, helping make all those non-code texts better, faster.

🔍 What Does Grazie Do?
• Instant proofreading (grammar, spelling, punctuation, style)
• Inline text completion
• Summarization
• Translation across several languages
• Rephrasing / tone correction / synonymization
• AI-Chat

🛠 Where It Works & Pricing
• Plugin for JetBrains IDEs
• Browser extension for Chromium-based browsers
• Google Docs, Sheets, Gmail
• GitHub
• Slack
• And many more ...


[ Download ] : https://www.jetbrains.com/grazie

〰️〰️〰️〰️〰️〰️
#AI #Jetbrains #GrammarAI
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub MCP Registry: The fastest way to discover MCP Servers 🔝

If you’ve tried connecting AI agents to your development tools, you know the pain: MCP servers scattered across numerous registries, random repos, buried in community threads — making discovery slow and full of friction without a central place to go. Meanwhile, MCP server creators are worn out from publishing to multiple places and answering the same setup questions again and again.

The GitHub MCP Registry launches as your new home base for discovering MCP servers. Whether you’re building with GitHub Copilot, agents, or any AI tool that speaks MCP, this is the place to find what you need. With GitHub already home to most MCP servers, the MCP Registry makes them dramatically easier to discover, explore, and use — helping developers find the right tools faster and contribute to a more open, interoperable ecosystem. ✔️


[ GitHub MCP Registry ] : https://github.com/mcp

〰️〰️〰️〰️〰️〰️
#LLM #AI #MCP #GitHub
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Announcing ChromeDevTools MCP! 🔥

Connect your AI coding agent to Chrome's powerful automation & debugging capabilities with ease.

Key features:

Reliable automation: It can programmatically handle clicks, form fills, dialogs, and page navigation with ease.

Performance insights: Go beyond simple audits. Instruct your agent to record a performance trace and extract actionable insights to optimize your web apps.

Advanced debugging: Empower your AI to analyze network requests, list console messages, take screenshots, and even evaluate scripts in the browser context.

Browser emulation: Easily test different conditions by emulating CPU slowdowns, network throttling, or various screen sizes.

Works well with modern web apps and believe this will unlock new workflows for automated testing, AI-driven debugging, and interactive web development.


[ Blog ]
: https://developer.chrome.com/blog/chrome-devtools-mcp

〰️〰️〰️〰️〰️〰️
#AI #LLM #MCP
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM