window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster가 이미 존재합니다') } else { w.LeadBooster = { q: [], on: 함수 (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: 함수 (n) { this.q.push({ t: 't', n: n }) }, } } })() 레일 및 기타 운송 수단 - The Codest
The Codest
  • 회사 소개
  • 서비스
    • 소프트웨어 개발
      • 프론트엔드 개발
      • 백엔드 개발
    • Staff Augmentation
      • 프론트엔드 개발자
      • 백엔드 개발자
      • 데이터 엔지니어
      • 클라우드 엔지니어
      • QA 엔지니어
      • 기타
    • IT 자문
      • 감사 및 컨설팅
  • 산업 분야
    • 핀테크 및 뱅킹
    • E-commerce
    • 애드테크
    • 헬스 테크
    • 제조
    • 물류
    • 자동차
    • IOT
  • 가치
    • CEO
    • CTO
    • 배달 관리자
  • 우리 팀
  • Case Studies
  • 방법 알아보기
    • 블로그
    • 모임
    • 웹 세미나
    • 리소스
채용 정보 연락하기
  • 회사 소개
  • 서비스
    • 소프트웨어 개발
      • 프론트엔드 개발
      • 백엔드 개발
    • Staff Augmentation
      • 프론트엔드 개발자
      • 백엔드 개발자
      • 데이터 엔지니어
      • 클라우드 엔지니어
      • QA 엔지니어
      • 기타
    • IT 자문
      • 감사 및 컨설팅
  • 가치
    • CEO
    • CTO
    • 배달 관리자
  • 우리 팀
  • Case Studies
  • 방법 알아보기
    • 블로그
    • 모임
    • 웹 세미나
    • 리소스
채용 정보 연락하기
뒤로 화살표 뒤로 가기
2021-06-30
소프트웨어 개발

철도 및 기타 운송 수단

The Codest

크지슈토프 부제비츠

시니어 Software Engineer

Rails는 빠른 애플리케이션 개발에 중점을 둔 Rack 호환 프레임워크입니다. 안타깝게도 "모든 것이 즉시 사용 가능한" 접근 방식과 맹목적인 Rails 방식 동작으로 인해 애플리케이션 코드의 수신(가독성) 및 작동 측면에서 품질이 저하되는 경우가 많습니다.

인기 있는 레일 및 레일웨이 문제

에 언급된 문제: Shopify의 기사

  • 라우팅,
  • 비포 액션,
  • 컨트롤러에서 큰 동작을 수행합니다,
  • 컨트롤러의 비공개 메서드,
  • 믹스인을 한 번만 사용합니다,
  • 로직을 뷰에 추가합니다,
  • 액티브 레코드 콜백,
  • 연결,
  • "뚱뚱한 모델."

추가 문제

  • 활성 레코드 유효성 검사,
  • 명시적인 것보다 암시적인 것을 선호합니다,
  • DRY 남용,
  • 협회에 위임할 수 있습니다,
  • 서비스 호출을 모델에 추가합니다.

레일즈의 대안

다음과 같은 경우 레일 에서 Ruby 세계에는 몇 가지 대안이 있습니다. Rack을 기반으로 하는 다른 프레임워크는 다음과 같습니다: - 시나트라, – Roda, – 하나미.

무엇이 특별한가요?

Sinatra와 Roda는 모두 블록 라우팅 구문을 제공하지만 Sinatra의 라우팅은 목록이고 Roda의 라우팅은 트리입니다. 두 프레임워크 모두 모델 레이어의 구현을 직접 처리해야 합니다. Roda의 경우 Sequel 젬을 사용하는 것이 좋습니다.

Roda는 시나트라에서 영감을 받았습니다. 그 자체로는 매우 가볍지만 많은 플러그인이 있습니다.

하나미는 레일 프레임워크가 적용되는 영역에 관해서는 다릅니다. 사용 측면에서 가장 중요한 차이점은 다음과 같습니다:

  • 컨트롤러의 레일 대 하나미의 액션,
  • 특정 리소스(모델)와 관련된 작업을 위한 하나의 컨트롤러가 아닌 특정 HTTP 요청을 처리하는 전용 클래스/객체입니다,
  • 모델 계층을 리포지토리 및 엔티티를 기반으로 하여 활성 레코드 패턴이 아닌 애플리케이션의 나머지 부분과 지속성을 분리합니다.

하나미 버전 1은 기반이 되는 ROM의 사용을 강력하게 제한하고 있으므로(버전 3, 이미 5) 거기서 제안하는 모델 레이어를 사용할 가치가 없습니다. 그러나 매우 개방적인 프레임워크이기 때문에 자신만의 모델을 구현하는 것은 매우 쉽습니다.

레일용 보충제

다음에 종속되지 않는 솔루션을 사용하는 것이 좋습니다. 레일 "순수"에 더 가깝습니다. Ruby. 프레젠테이션에서 언급된 도구는 다음과 같습니다:

  • 시퀄(ORM, 액티브 레코드의 대체),
  • ROM(객체 매퍼),
  • 드라이-RB 라이브러리: 드라이 검증, 드라이 시스템 및 드라이 모나드.

속편은 쉽게 프로젝트와 마찬가지로 플러그인을 기반으로 하며 활성 레코드 패턴도 구현합니다. 보다 더 나은 로우 레벨 쿼리 지원을 제공합니다. 레일' ActiveRecord.

ROM은 시퀄을 사용하지만 그 개념은 데이터베이스의 레코드와 Ruby 객체를 사용합니다. 속도와 데이터 변환을 목표로 합니다. 애플리케이션에서 지속성 계층을 명확하게 분리합니다.

Dry-rb 라이브러리는 매우 유용한 도구입니다:

  • 건식 유효성 검사는 API 프로젝트에서 매우 쉽게 사용할 수 있으며 수신 데이터의 정확성을 효과적으로 제어할 수 있습니다,
  • 드라이 시스템은 개발자가 이해하려면 약간의 연습과 인내심이 필요하지만, 애플리케이션의 종속성을 매우 유연하게 관리하고 프로젝트 구성 요소를 개별적으로 로드할 수 있습니다. 레일드라이 레일을 사용할 수 있습니다,
  • 드라이 모나드는 이론적으로는 어려운 개념이지만 실제로는 이해하기 쉬우며 결과 모나드를 사용하면 코드 를 분기하는 대신 특정 사례를 고려합니다.

결론

다음을 사용하는 것이 가장 좋습니다. 레일 를 사용할 필요가 없도록 레일 언젠가.

출처

기사

  • 레일즈 앱의 코드 냄새(Shopify 제공)
  • 하나미: 레포지오토리아
  • 레일 가이드

프레임워크

  • 시나트라
  • Roda
  • 하나미

보석

  • 속편
  • ROM
  • Biblioteki dry-rb
  • 루비 JSON 스키마 유효성 검사기(json-schema)
  • Pagy
  • Rodauth
  • 로다우 레일

사양

  • 랙
  • JSON 스키마

자세히 읽어보세요:

루비 온 제트란 무엇이며 이를 사용하여 앱을 빌드하는 방법은 무엇인가요?

Vuelendar. Vue.js를 기반으로 하는 새로운 코데스트의 프로젝트

코데스트의 주간 베스트 기술 기사 리포트. 5천만 동시 소켓을 위한 소프트웨어 구축 (10)

관련 문서

소프트웨어 개발

미래 지향적인 웹 앱 구축: The Codest의 전문가 팀이 제공하는 인사이트

The Codest가 최첨단 기술로 확장 가능한 대화형 웹 애플리케이션을 제작하고 모든 플랫폼에서 원활한 사용자 경험을 제공하는 데 탁월한 성능을 발휘하는 방법을 알아보세요. Adobe의 전문성이 어떻게 디지털 혁신과 비즈니스를 촉진하는지 알아보세요...

최신
소프트웨어 개발

라트비아에 본사를 둔 10대 소프트웨어 개발 기업

최신 기사에서 라트비아 최고의 소프트웨어 개발 기업과 그들의 혁신적인 솔루션에 대해 알아보세요. 이러한 기술 리더들이 어떻게 귀사의 비즈니스를 향상시키는 데 도움을 줄 수 있는지 알아보세요.

thecodest
엔터프라이즈 및 스케일업 솔루션

Java 소프트웨어 개발 필수 사항: 성공적인 아웃소싱을 위한 가이드

The Codest로 효율성을 높이고 전문 지식을 활용하며 프로젝트 성공을 이끌 수 있는 성공적인 outsourcing Java 소프트웨어 개발에 대한 이 필수 가이드를 살펴보세요.

thecodest
소프트웨어 개발

폴란드 아웃소싱을 위한 최고의 가이드

폴란드에서 outsourcing가 급증한 것은 경제, 교육, 기술 발전으로 인한 IT 성장과 비즈니스 친화적인 환경이 조성된 덕분입니다.

더코데스트
엔터프라이즈 및 스케일업 솔루션

IT 감사 도구 및 기술에 대한 완벽한 가이드

IT 감사는 안전하고 효율적이며 규정을 준수하는 시스템을 보장합니다. 전체 기사를 읽고 그 중요성에 대해 자세히 알아보세요.

The Codest
야쿱 야쿠보비치 CTO & 공동 설립자

지식창고를 구독하고 IT 분야의 전문 지식을 최신 상태로 유지하세요.

    회사 소개

    The Codest - 폴란드에 기술 허브를 둔 국제 소프트웨어 개발 회사입니다.

    영국 - 본사

    • 사무실 303B, 182-184 하이 스트리트 노스 E6 2JA
      영국 런던

    폴란드 - 현지 기술 허브

    • 파브리츠나 오피스 파크, 알레야
      포코주 18, 31-564 크라쿠프
    • 뇌 대사관, 콘스트럭터스카
      11, 02-673 바르샤바, 폴란드

      The Codest

    • 홈
    • 회사 소개
    • 서비스
    • Case Studies
    • 방법 알아보기
    • 채용 정보
    • 사전

      서비스

    • IT 자문
    • 소프트웨어 개발
    • 백엔드 개발
    • 프론트엔드 개발
    • Staff Augmentation
    • 백엔드 개발자
    • 클라우드 엔지니어
    • 데이터 엔지니어
    • 기타
    • QA 엔지니어

      리소스

    • 외부 소프트웨어 개발 파트너와의 협력에 대한 사실과 오해
    • 미국에서 유럽으로: 미국 스타트업이 유럽으로 이전을 결정하는 이유
    • 테크 오프쇼어 개발 허브 비교: 테크 오프쇼어 유럽(폴란드), 아세안(필리핀), 유라시아(터키)
    • CTO와 CIO의 주요 과제는 무엇인가요?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • 웹사이트 이용 약관

    저작권 © 2025 by The Codest. 모든 권리 보유.

    ko_KRKorean
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek ko_KRKorean