schmonz.com is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.
This server runs the snac software and there is no automatic sign-up process.
[AI 시대, 리팩터링은 더 이상 노가다가 아니다
AI와 Codemod(jscodeshift)를 활용해 대규모 리팩터링을 효율적으로 수행한 사례를 소개. Deprecated Typography 컴포넌트를 새 Design System으로 자동 변환하여 코드 일관성과 온보딩 경험을 개선했다.
🚀 Cập nhật Arbor v1.4: công cụ phân tích đồ thị gọi hàm giúp trả lời “Thay đổi hàm này sẽ phá vỡ gì?”. 🎯 Giao diện GUI đơn giản, tính điểm confidence, và phân loại vai trò (Entry Point, Utility, Core Logic). Hữu ích cho dự án lớn, refactor code. 🎤 Sẵn sàng trả lời câu hỏi kỹ thuật!
#Arbor #codeanalysis #refactoring #CôngCụPhânTích #LậpTrình #SoftwareEngineering #phân_tích_mã #đồ_thị_gọi_hàm
Your project has 2,000 tests—and nobody knows which are #JUnit4. Jean Donato explains how @OpenRewrite and Dependency Analyzer help you migrate safely, step by step.
Stay sane during test refactors: https://javapro.io/2025/09/10/mastering-junit-navigating-between-old-and-new-versions-for-a-smarter-test-strategy/
There's a lot of #refactoring in the future of this #Drupal 8 project I'm slowly moving to D11.
Can anyone point to interesting reading on approaches / architecture / design patterns specifically aimed to help separate business/domain logic from application logic, specifically in the context of #Drupal?
Elements from #HexagonalArchitectre look relevant, and #DecoupledDrupal solutions may have interesting approaches as well.
To the research lair!
How many shortcuts can you remember? Three? Five? More? I try to learn as many as I can and still forget some of them… What if you could unlock IntelliJ IDEA features, without having to remember shortcuts? You can still use shortcuts if you want. But you don’t have to. Command completion (..) is a…...
#codecompletion #commandcompletion #inspections #livetemplates #navigation #postfixcompletion #quickfixes #Refactoring
https://foojay.io/today/command-completion-intellij-idea/
Programmer Life » 🌐
@programmerlife1.wordpress.com@programmerlife1.wordpress.com
நீங்கள் ஒரு நாள் சரியாக இல்லாத (messy) code-ஐ கண்டிப்பாக நிச்சயமாக ஏதோ ஒரு வழியில் பெறுவீர்கள்.
அதை எழுதிய developer-ஐ கேலி செய்ய வேண்டாம். சில சமயங்களில் அது நீங்கள் எழுதியதாக கூட இருக்கலாம்.
பல developers ஒரு file-ஐத் திறந்தவுடன்,
“இந்த குப்பையை யார் எழுதியது ? எல்லாத்தையும் rewrite பண்ணிடலாம்” என்று சொல்வதை நான் பார்த்திருக்கிறேன்.
ஆனால் Context மிகவும் முக்கியம்.
அந்த நிர:
அதனால் code-ஐ மட்டும் பார்த்து தீர்ப்பு சொல்லக் கூடாது.
இதற்கு ஒரு நல்ல விதி இருக்கிறது — Boy Scout Rule.
“நீ கண்ட code-ஐ விட,
அதை கொஞ்சமாவது சுத்தமாக்கி விட்டு போ.”
Day 1-லேயே உலகத்தையே மறு உருவாக்கம்(rewrite) செய்ய வேண்டிய அவசியம் இல்லை.
பல சமயங்களில் அது தேவையில்லாமல் கூட இருக்கலாம்.
வேலை செய்யும் இடங்களில்,
சின்ன சின்ன refactor-களை செய்து,
code-ஐ மெதுவாக நல்ல நிலையில் கொண்டு வருவது தான் புத்திசாலித்தனம் அதுதான் எளிமையாக செய்யக்கூடியதும் கூட.
இன்னொரு முக்கியமான கருத்து — Chesterton’s Fence.
“ஒரு வேலி ஏன் போடப்பட்டது என்று தெரியாமல்,
அதை இடிக்கக் கூடாது.”
அந்த logic, அந்த hack, அந்த workaround —
அது ஏதோ ஒரு காரணத்துக்காக அங்கே இருக்கலாம்.
சில சமயங்களில் காரணங்கள் கூட குறிப்பிடப்பட்டிருக்காது.
அந்த காரணத்தை புரிந்து கொள்ளாமல் மாற்றினால்,
புதிய பிரச்சனைகள் உருவாகும்.
இறுதியாக ஒரு சிந்தனை:
நீங்கள் எதைக் அதிகம் ரசிக்கிறீர்கள்?
இருக்கும் code-ஐ புரிந்து, மெதுவாக மேம்படுத்துவதையா?
அல்லது
புதிதாக, greenfield project-ஐ ஆரம்பிப்பதையா?
இரண்டும் developer வாழ்க்கையின் ஒரு பகுதி தான்.
ஆனால் நல்ல developer என்பவர்,
கெட்ட code-ஐ பார்த்து கோபப்படாமல்,
அதன் பின்னணி கதையை புரிந்து கொண்டு,
அதை நாளுக்கு நாள் சிறப்பாக்குபவரே.
மாற்றங்களே வினா மாற்றங்களே விடை!
ஆகவே சற்று சிந்தித்து செயலாற்றுங்கள்!
Just a random evening thought I wanted to share.
One specific peculiarity of the software engineering discipline is the slow realization that "clever" code is sometimes a liability. I divided my rationalization in three stages.
Stage 1: You want to use every design pattern, abstraction and fancy trending framework you read about on Hacker News.
Stage 2: You realize you're the one who has to debug that mess at 3am six months from now.
Stage 3: You start optimizing for a fictional person. That person is a junior who hasn't had their first coffee yet and you want readability of code more than anything lol
Which is why I never quite believed in LOC as an impressive metric. For me, a good PR is as much about reducing 500 lines of legacy technical debt while keeping the system stable as it is about adding a new shiny feature. Anyone else feel this way?
#softwareengineering #cleancode #refactoring #programming #system #askfedi #legacy #software #technology
Just a random evening thought I wanted to share.
One specific peculiarity of the software engineering discipline is the slow realization that "clever" code is sometimes a liability. I divided my rationalization in three stages.
Stage 1: You want to use every design pattern, abstraction and fancy trending framework you read about on Hacker News.
Stage 2: You realize you're the one who has to debug that mess at 3am six months from now.
Stage 3: You start optimizing for a fictional person. That person is a junior who hasn't had their first coffee yet and you want readability of code more than anything lol
Which is why I never quite believed in LOC as an impressive metric. For me, a good PR is as much about reducing 500 lines of legacy technical debt while keeping the system stable as it is about adding a new shiny feature. Anyone else feel this way?
#softwareengineering #cleancode #refactoring #programming #system #askfedi #c #python #golang #kotlin #javascript #webdev #legacy #php #ruby #software #technology
Great refactoring quote: "First make the change easy, then make the easy change." - Kent Beck.
🛠️ Khi refactor mã, khó biết gì sẽ bị ảnh hưởng cho tới khi test thất bại. Dự án Arbor (CLI nhỏ) giúp dự đoán các phần sẽ bị phá vỡ khi thay đổi hàm. Chỉ cần chạy `arbor refactor <đối tượng_rủi_ro>` để liệt kê các phụ thuộc có thể bị hỏng. Giảm rủi ro và bảo vệ tính ổn định khi refactor! #refactoring #programming #arbor #công_nghệ #phát_triển #lập_trình
Habr » 🤖 🌐
@habr@zhub.link
[Перевод] Гексагональная архитектура в Rust: отвязываем бизнес-логику от Solana
Представьте: вы строите сервис выдачи дипломов на Solana. Всё отлично, пока дело не доходит до тестов. Внезапно оказывается, что для проверки бизнес-логики нужно поднимать валидатор, искать тестовые токены и молиться на стабильность сети. Знакомая боль? В этой статье я покажу, как мы решили проблему, используя async-trait и dyn Trait. Мы превратили интеграционные тесты длиной в минуты в юнит-тесты, которые проходят за миллисекунды. Узнать решение
https://habr.com/ru/articles/983874/
#rust #solana #гексагональная_архитектура #блокчейн #unittesting #dependency_injection #axum #web3 #mocking #refactoring
Habr » 🤖 🌐
@habr@zhub.link
Январский рефакторинг: 7 дней, чтобы почистить Python веб‑проект
Январь - самое удобное время разобрать завалы в проекте. Пол‑команды ещё в отпусках, pull‑реквестов меньше, product owner'ы только вспоминают, что планировали делать в этом году - можно спокойно пройтись по коду и навести порядок. В этой статье пойдёт речь о нескольких косметических действиях, которые, с одной стороны, почти не затрагивают логику программы и не вызывают ненависти у тестировщиков, а с другой - делают код чуть приятнее и дают темы для обсуждения на бэкенд‑созвонах. Мы разложим импорты, перенесём логику из роутов в контроллеры, а из контроллеров - в репозитории и сервисы, избавимся от requirements.txt в пользу нормального менеджера зависимостей и включим mypy.
https://habr.com/ru/articles/983172/
#python #backend #refactoring #architecture #linter #mypy #litestar
Arbor: Graph-native codebase indexing via MCP for structural LLM refactors
Arbor là một lớp trí tuệ mã nguồn mở xử lý code như "Logic Forest". Sử dụng động cơ AST Rust để xây dựng đồ thị cấu trúc repo, cung cấp ngữ cảnh xác định cho LLMs như Claude và ChatGPT qua Model Context Protocol (MCP). Arbor bridge cho phép AI agents thực hiện refactors phức tạp với nhận thức đầy đủ về phân cấp và phụ thuộc dự án.
#Arbor #LLM #AI #Codebase #MCP #Rust #TreeSitter #Refactoring #AIEngineering
#Arbor #MãNgu
Học được gì khi refactor code cấp độ người mới bắt đầu: "nó chạy được" không đồng nghĩa với "dễ bảo trì". Tác giả chia sẻ kinh nghiệm refactor code cũ, nhận ra các vấn đề như logic phức tạp, hàm đa nhiệm, đặt tên biến kém. Refactor giúp code sạch hơn, dễ hiểu và dễ bảo trì hơn. Đúng là quan trọng, nhưng rõ ràng và khả năng bảo trì mới là kỹ năng lập trình thực sự.
#Refactoring #CodeQuality #SoftwareDevelopment #LậpTrình #CảiThiệnCode
https://www.reddit.com/r/programming/comments/1q5nwxw/what_i
Habr » 🤖 🌐
@habr@zhub.link
MDUI: как отдать UI backend-разработчикам
Как сократить Time-to-Market в 7 раз и научить бэкенд-разработчиков собирать страницы за 15 минут? В этой статье я делюсь опытом внедрения Meta-Driven UI в ERP-системе. Расскажу, как я «душила» легаси с помощью Strangler Fig Pattern, внедрила FSD-архитектуру на Vue 3 и почему Render-функции оказались эффективнее обычных шаблонов.
https://habr.com/ru/articles/980684/
#vuejs #frontendразработка #MDUI #fsd #erpсистемы #refactoring
That’s your clue: refactor first.
(Special case of the general KFB wisdom “First make the change easy, then make the easy change.”)
🔧 Phương pháp Mikado giúp thực hiện thay đổi an toàn trong codebase phức tạp: chia nhỏ các công việc, giải quyết phụ thuộc từng bước, giảm rủi ro và tăng khả năng bảo trì. #MikadoMethod #Refactoring #CodeQuality #PhátTriểnPhầnMềm #LậpTrình #LegacyCode
https://understandlegacycode.com/blog/a-process-to-do-safe-changes-in-a-complex-codebase/
Even if you’ve read the JEPs—have you used #RecordPatterns to refactor old-school branching logic? @manojnp shows how to turn bloated instanceof trees into readable, idiomatic #Java code with just records.
👉 https://javapro.io/2025/01/15/record-patterns-building-on-java-records/
Habr » 🤖 🌐
@habr@zhub.link
Технический долг в голове: Почему сеньоры выгорают на задачах для джунов, а пет-проекты умирают в бэклоге
В прошлой статье я рассказывал, как настроил личный iptables и перешел в режим Default Deny , чтобы отбиться от внешних DDoS-атак (коллег, пустых встреч и спама). Периметр я защитил, входящий трафик почистил. Uptime вырос. Казалось бы — живи и радуйся. Но я заметил странную вещь: снаружи тихо, а сервер все равно греется. Я заглянул внутрь контейнера и понял: проблема не во входящих пакетах. Проблема в архитектуре самого приложения . Парадокс: я могу спроектировать архитектуру, которая выдержит падение дата-центра. Я могу дебажить race condition в многопоточном приложении. Но когда мне нужно позвонить в страховую или выбрать отель для отпуска, я впадаю в ступор. Мой личный бэклог забит задачами типа «разобраться с налогами» и «начать бегать», которые висят там с 2019 года. Я переношу их из спринта в спринт, испытывая фоновое чувство вины. В какой-то момент я понял: это не лень. И это не «отсутствие мотивации». Это классический Technical Debt (Технический долг) , только не в репозитории, а в нейросети. И проценты по этому долгу я плачу самым дорогим ресурсом — своей когнитивной емкостью.
https://habr.com/ru/articles/973796/
#Технический_долг #Refactoring #Legacy_code #Прокрастинация #Саморазвитие #Таймменеджмент #Mental_Health #выгорание #личная_эффективность #психология_программирования
J'ai apprécié cet article de @jbrains. Quand on simplifie du code, paradoxalement il y a un risque de le rendre moins familier (ce n'est plus comme avant, ce n'est plus comme on a toujours fait). Ça peut être une raison d'accepter de ne pas simplifier. Mais si on ne prend jamais ce risque, on passe à côté d'opportunités de simplifications. Compromis... Je trouve intéressant d'avoir ça en tête collectivement.
=> https://blog.jbrains.ca/permalink/a-central-conflict-in-readable-code