{"action":"created","issue":{"url":"https://api.github.com/repos/lenskit/lenskit/issues/552","labels_url":"https://api.github.com/repos/lenskit/lenskit/issues/552/labels{/name}","comments_url":"https://api.github.com/repos/lenskit/lenskit/issues/552/comments","events_url":"https://api.github.com/repos/lenskit/lenskit/issues/552/events","html_url":"https://github.com/lenskit/lenskit/issues/552","id":30639346,"number":552,"title":"Standardize builder/factory/provider language","user":{"login":"mdekstrand","id":186612,"avatar_url":"https://avatars.githubusercontent.com/u/186612?v=3","gravatar_id":"","url":"https://api.github.com/users/mdekstrand","html_url":"https://github.com/mdekstrand","followers_url":"https://api.github.com/users/mdekstrand/followers","following_url":"https://api.github.com/users/mdekstrand/following{/other_user}","gists_url":"https://api.github.com/users/mdekstrand/gists{/gist_id}","starred_url":"https://api.github.com/users/mdekstrand/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mdekstrand/subscriptions","organizations_url":"https://api.github.com/users/mdekstrand/orgs","repos_url":"https://api.github.com/users/mdekstrand/repos","events_url":"https://api.github.com/users/mdekstrand/events{/privacy}","received_events_url":"https://api.github.com/users/mdekstrand/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/lenskit/lenskit/labels/proposal","name":"proposal","color":"444444"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/lenskit/lenskit/milestones/23","html_url":"https://github.com/lenskit/lenskit/milestones/3.0","labels_url":"https://api.github.com/repos/lenskit/lenskit/milestones/23/labels","id":433278,"number":23,"title":"3.0","description":"LensKit 3.0, upcoming major change + long-term stable version.","creator":null,"open_issues":54,"closed_issues":60,"state":"open","created_at":"2013-09-21T00:54:48Z","updated_at":"2015-10-09T16:43:50Z","due_on":"2015-11-30T06:00:00Z","closed_at":null},"comments":3,"created_at":"2014-04-01T21:26:04Z","updated_at":"2015-10-13T15:51:16Z","closed_at":null,"body":"Right now, we use `FooBuilder` both for a class exposing an API to build a complex `Foo`, and for building model objects.\r\n\r\nThe latter, since they mostly just get their `get` method called and are configured via the constructor, should possibly be called `FooFactory`.\r\n\r\nIn general, we should be consistent and comprehensible in our usage of the terms *builder*, *factory*, and *provider*."},"comment":{"url":"https://api.github.com/repos/lenskit/lenskit/issues/comments/147757232","html_url":"https://github.com/lenskit/lenskit/issues/552#issuecomment-147757232","issue_url":"https://api.github.com/repos/lenskit/lenskit/issues/552","id":147757232,"user":{"login":"mdekstrand","id":186612,"avatar_url":"https://avatars.githubusercontent.com/u/186612?v=3","gravatar_id":"","url":"https://api.github.com/users/mdekstrand","html_url":"https://github.com/mdekstrand","followers_url":"https://api.github.com/users/mdekstrand/followers","following_url":"https://api.github.com/users/mdekstrand/following{/other_user}","gists_url":"https://api.github.com/users/mdekstrand/gists{/gist_id}","starred_url":"https://api.github.com/users/mdekstrand/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mdekstrand/subscriptions","organizations_url":"https://api.github.com/users/mdekstrand/orgs","repos_url":"https://api.github.com/users/mdekstrand/repos","events_url":"https://api.github.com/users/mdekstrand/events{/privacy}","received_events_url":"https://api.github.com/users/mdekstrand/received_events","type":"User","site_admin":false},"created_at":"2015-10-13T15:51:16Z","updated_at":"2015-10-13T15:51:16Z","body":"Avoiding duplication is good, and explaining the difference between a provider and a factory is probably not worthwhile, especially since there is no actual difference in how they are used.\r\n\r\nSo, standardize on 'Provider' language and rename all our 'model builders' to be 'model providers', and go with that?"}}