你写的createSomething()还是addSomething()?
你写readSomething(),getSomething()还是fetchSomething()?
这完全是一个小小的抱怨.在会议室我们称之为CRUD,但在实际代码中,它正在成为AGUD.
你的偏好命名惯例是什么?有关系吗?
日Thnx.
我知道在像Java这样的纯面向对象语言中,使用像Hibernate这样的ORM通常是有意义的.但是在Clojure或Common LISP中编写CRUD类型的功能时我该怎么办?
传递SQL作为一阶函数?但是,HTML生成代码中的SQL是否非常丑陋?
谢谢,
Olek
意识到这可能听起来像一个广泛的问题 - 所以让我澄清一下.我有一个通过接口公开的存储库,有两个具体的实现 - 一个MockRepository和一个EntityFrameworkRepository.
现在,我对所有的测试可以对运行的单元测试项目无论是库通过弹上的线,[TestInitialize].
我的问题基本上是"我该如何编写测试".
这就是我所拥有的:
C reate
// Arrange.
var foo = new Foo { .. };
// Act
Repository.Add(foo);
UnitOfWork.Commit();
// Assert
Assert.IsTrue(foo.Id > 0);
Run Code Online (Sandbox Code Playgroud)
R etrieve
// Arrange.
var fooToGet = 1;
// Act
var foo = Repository.FindSingle(fooToGet);
// Assert
Assert.IsNotNull(foo);
Assert.AreEqual(foo.Id, fooToGet);
Run Code Online (Sandbox Code Playgroud)
ü PDATE
// Arrange.
var fooToGet = 1;
var nameToChangeFooTo = "FooBar";
// Act
var foo = Repository.FindSingle(fooToGet);
foo.Name = nameToChangeFooTo;
UnitOfWork.Commit();
var fooRetrievedAgain …Run Code Online (Sandbox Code Playgroud) 我是Rails,MVC和CRUD的新手,我正在尝试使用更新方法来更改帖子的投票数量.我的帖子控制器更新方法中有以下代码:
def update
@post = Post.find(params[:id])
if params[:vote] == 'up'
@post.update_column(:ups => @post[:ups] + 1)
elsif params[:vote] == 'down'
@post.update_column(:downs => @post[:downs] + 1)
end
flash[:notice] = "Thanks for voting! This helps us determine important issues in our schools."
redirect_to 'Posts#index'
end
Run Code Online (Sandbox Code Playgroud)
我的routes.rb中有以下代码:
OpenMCJC::Application.routes.draw do
root :to => 'posts#index'
resources :posts
match '/posts/:id/:vote', :to => 'posts#update'
end
Run Code Online (Sandbox Code Playgroud)
导航到"/ posts/3/up"后,会抛出以下错误:
ArgumentError in PostsController#update
wrong number of arguments (1 for 2)
Run Code Online (Sandbox Code Playgroud)
根据页面的请求参数是这样的:
{"id"=>"3",
"vote"=>"up"}
Run Code Online (Sandbox Code Playgroud)
你能帮我弄清楚出了什么问题吗?
我想知道如何在Play V2.0中启用CRUD模块我找到了V1.2.3的这个文档:
http://www.playframework.org/documentation/1.2.3/crud
Run Code Online (Sandbox Code Playgroud) 根据要求,如果用户没有对第三个对象的读访问权,我必须更改帐户的所有者.
我需要一个类似于isAccessible()描述字段结果的方法的功能,但它仅适用于当前登录的用户.
有没有其他方法可以检查用户对Apex代码中对象的CRUD权限?
我正在开发一个非常小的测试来模拟一个3层系统,这样我就可以理解Exceptions是如何工作的.同时我想提出一个合理的方法,以便我可以将此设计作为其他应用程序中类似操作的进一步参考.
我一直在阅读有关该主题的不同文章,似乎关于使用已检查或未经检查的异常存在巨大争议,这使我对我的最终设计产生怀疑.
我不会通过批评或支持已检查/未检查异常的论据,因为可能它们都是众所周知的,而是我会提出我的设计,寻找一些建议,如何改进它并尽可能地使它(尽可能长)一个真正的应用程序.
系统负责使用JDBC在关系数据库(简称MySQL)中执行基本的CRUD操作.我有以下内容:表示层,服务层和持久层.
基于这个答案处理服务层中的Dao异常,我有理由不暴露特定的层实现并解耦层.所以我决定创建自定义异常并将它们包装到每层的基本异常中,这样我就可以将特定的层异常(即SQLException)转换为一般的层异常(即PersistentException,BusinessException).如果稍后实现更改,我可以简单地将新的一个包装到更高层所期望的基本异常中.所以我有以下例外:
com.user.persistent.exceptions
|_ PersistentException
|_ ExistingUserException
|_ Some more..
com.user.business.exceptions
|_ BusinessException
|_ somemore....
Run Code Online (Sandbox Code Playgroud)
来自Josh Bloch的书"Effective Java":"使用已检查的异常来调用可以合理地预期调用者恢复的条件."我也不确定,但我相信用户可以从SQLExeption恢复(即用户错误地提供了现有的ID,他可以重新键入正确的一个)所以我决定使之前的异常检查异常.以下是类的外观概述:
持久层.
public interface UserDAO
{
public void create(User team) throws PersistentException;
}
//Implementation in DefaultUserDAO.java
@Override
public void create(User team) throws PersistentException
{
try
{
System.out.println("Attempting to create an user - yikes the user already exists!");
throw new SQLIntegrityConstraintViolationException();
}
catch(SQLIntegrityConstraintViolationException e)
{
throw new ExistingUserException(e);
}
catch (SQLException e)
{
throw new PersistentException(e);
} …Run Code Online (Sandbox Code Playgroud) 我想写简化了使用写CRUD后端一个类型类持久性,埃宋和斯科蒂
这是我的想法:
runDB x = liftIO $ do info <- mysqlInfo
runResourceT $ SQL.withMySQLConn info $ SQL.runSqlConn x
class (J.FromJSON a, J.ToJSON a, SQL.PersistEntity a) => CRUD a where
getBasePath :: a -> String
getCrudName :: a -> String
getFromBody :: a -> ActionM a
getFromBody _ = do body <- jsonData
return body
mkInsertRoute :: a -> ScottyM ()
mkInsertRoute el =
do post (fromString ((getBasePath el) ++ "/" ++ (getCrudName el))) $ do …Run Code Online (Sandbox Code Playgroud) 我下载了高级模板,解压缩并更改了后端和前端的根文档,但我似乎无法弄清楚如何让Gii工作来执行crud操作.
在composer.JSON中有require和require-dev字段我在其中包含了gii,并且每个都分别没有运气.
我也尝试通过作曲家获取模板,并在安装时看到gii已安装,但仍无法使其工作.
这是我得到我的Yii模板的地方:https://github.com/yiisoft/yii2-app-advanced
我有一个 angular/nodejs 应用程序,用户可以在其中查看资源列表、更新、创建和删除它们(一个基本的 CRUD 应用程序)。我想把它变成一个 PWA,这样用户就可以离线工作。它必须 :
因此,首先,我尝试按照此处的文档将 Angular 的 Service Worker 添加到我的应用程序中:https : //angular.io/guide/service-worker-getting-started
ng add @angular/pwa
前两点效果很好:离线时我仍然可以查阅资源列表。但是 POST/PUT/DELETE 请求都失败了,因为它只缓存非变异请求
然后我偶然发现了这个教程,它描述了如何扩展 Angular Service Worker。
使用此代码:
importScripts('./ngsw-worker.js');
self.addEventListener('fetch', (event) => {
console.log('fetch event !')
// Here do something to store request if method is POST/PUT/DELETE
});
Run Code Online (Sandbox Code Playgroud)
我的自定义 fetch 事件永远不会被触发,因为里面ngsw-worker.js已经定义了一个捕获事件的“fetch”事件处理程序。如果我在 Angular 之前声明我的听众:
self.addEventListener('fetch', (event) => {
console.log('fetch event !')
// Here do something to store request if …Run Code Online (Sandbox Code Playgroud) crud ×10
angular ×1
apex-code ×1
c# ×1
database ×1
exception ×1
gii ×1
haskell ×1
java ×1
javascript ×1
jdbc ×1
lisp ×1
orm ×1
permissions ×1
persistent ×1
php ×1
repository ×1
routing ×1
ruby ×1
salesforce ×1
unit-testing ×1
yesod ×1
yii2 ×1