소프트웨어-이야기/프로그래밍 언어와 프레임워크 썸네일형 리스트형 (번역)Command 아키텍처 기반으로 루비온 레일즈의 Controller Action 리팩토링하기 REFACTORING CONTROLLER ACTION IN RUBY ON RAILS 레일즈 컨트롤러가 뚱뚱해지는 현상을 꽤 많이 봤었다. Medium 눈팅하다가, 레일즈 컨트롤러를 리팩토링했다는 글을 발견했다. 뭔 내용인지 궁금해서 ㅋㅋ 읽어본 내용을 정리해보고자 한다. 컨트롤러는 얄쌍하고, 모델은 뚱뚱하게 로직을 짜는게 루비온레일즈의 MVC 기본 원칙이다. 그러나 시간이 흐르다 보면, 프로젝트는 점점더 커지고 메서드도 늘어난다. 그러다 보니 코드를 찾거나 신규 피쳐를 추가하는게 어려워진다. 그러다 결국 컨트롤러는 더이상 얄쌍해지지 않게 되고, 복잡해진다. 이에 대한 해결 방법을 정리하고자 한다. Controllers 우리는 컨트롤러에 코드가 몇백줄이나 되는걸 원하진 않는다. 그래서 가장 좋은 방법은 다.. (읽을거리)루비온레일즈 개발자를 위한 DDD 읽을 거리medium 포스팅Ruby on rails DDD => 읽어보니 루비에서는 어떤 느낌으로 DDD를 쓰는지 감이 온다 공식적인 느낌이 드는 ddd-ruby 사이트ddd-ruby.github.io레일즈 앱에서 비즈니스 도메인을 어떻게 관리할 건지 토론하는 페이지 Struggling with complex Rails app and business domain?2012년도에 작성된 sitepoint 포스팅 시리즈 DDD for Rails Developers. Part 1: Layered ArchitectureDDD for Rails Developers. Part 2: Entities and ValuesDDD for Rails Developers. Part 3: Aggregates스크립트 언어의 DDD .. [Ruby]루비의 메모리 이슈 루비 메모리 이슈 관련 포스팅 해석 및 따라해보기 블로그 : https://www.toptal.com/ruby/hunting-ruby-memory-issues예제 코드 : https://github.com/lingceng/momery_demo 준비물1. 예제 코드를 다운 받는다 2. Gemfile을 만들어서, 테스트용 스크립트를 돌릴 때 필요한 gem들을 설치한다 예제 코드에서는 Gemfile이 따로 없어서, 나는 아래의 Gemfile을 따로 만들어서 예제 코드를 돌려봤다.이 예제 코드 안에 아래의 Gemfile을 만들고, bundle install을 해주면, Gem들이 설치된다.source 'http://rubygems.org' gem "activerecord" gem "activesupport" ge.. [루비]RUBY KATA - 알고리즘 문제 풀어보는 사이트 CODE WARS 사이트에 가면, 루비 알고리즘을 풀어볼 수 있다. 루비 말고 다른 언어들도 지원한다. 아래의 주소로 가면, 루비 카타들을 연습해볼 수 있다.https://www.codewars.com/kata/search/ruby?q= [RAILS] association_basics counter_cache 레일즈 가이드에 counter_cache라는 개념이 있길래, 뭔지 궁금해서 찾아봤다.class Comment < ApplicationRecord belongs_to :post, counter_cache: trueendclass Post < ApplicationRecord has_many :commentsend예를 들어, 게시물의 리스트를 조회하는 페이지를 만든다고 생각해보자. 이 때, 게시물(Post)에는 댓글(Comment)가 남는 다.이 때, 아래의 예제 코드처럼, 루프를 돌때마다 댓글의 크기를 세면N+1 쿼리 문제가 발생하게 된다. Started GET "/posts" for ::1 at 2016-03-16 23:47:08 -0700 ActiveRecord::SchemaMigration Load (.. 루비온레일즈에서 Class 메서드와 Instance 메서드 이해하기 루비온레일즈에서의 클래스 메서드와 인스턴스 메서드를 어떨 때 사용하는지 찾아봤다.그런데 뭐... 루비라고 특별히 다른건 아닌거같고, 다 비슷하긴 해보인다. 참고한 포스팅http://culttt.com/2015/06/10/understanding-class-methods-verses-instance-methods-in-ruby/ 클래스 메서드란?클래스 메서드는 클래스에 정의된 메서드를 말한다. 이어서 예제 코드를 보고 설명하고자 한다 ㅎㅎ class User def self.find(id) puts "finding user with the id of #{id}" end end 보통.. ㅎㅎ 저렇게 id를 넘기면 user 객체를 리턴시켜준다.아무튼.. class 메서드는 앞에 self를 붙여준다. class.. 레일즈 엔진 (Rails Engine) 레일즈 애플리케이션 프로젝트가 여러개 있을 때, 공통으로 사용하는 함수나 상수가 있으면 ruby gem을 사용하면 된다. 그런데 공통으로 사용하는 view가 여러개 있으면 어떻게 할까?공통으로 사용하는 함수가 Model이라면?공통으로 사용하는 함수가 레일즈를 기반으로한다면? 이럴 때는 Gem으로 공통 라이브러리를 관리하기에는 한계가 있다. 이런 상황에 필요한 레일즈 기능은 Engine이다. 처음에 레일즈 Engine을 알게된 배경은, 리멤버의 블로그를 통해서였다.리멤버 개발 블로그 - Rails Engine을 이용한 Zeus 프로젝트 레일즈 엔진은 레일즈를 모듈처럼 쪼개놓은 것 같은 느낌이다.내가 만들고 있는 레일즈 애플리케이션에 엔진을 끼워넣는 느낌으로 사용하는거다.- 공통적으로 사용하는 컨트롤러를 만.. 레일즈4 + Mass Assignment + Strong Parameter MassAssignmentMassAssignment가 발생할 수 있는 상황 class UserController 이전 1 ··· 4 5 6 7 8 9 다음