小编Ott*_*tto的帖子

在实践中,消息传递并发语言如何比共享内存并发语言更好

我多年来一直是Java开发人员,但在我开始进行Android开发之前从未过多地处理并发问题,并且突然开始发现"应用程序没有响应"和明显的死锁情况.

这让我意识到理解和调试其中一些并发问题是多么困难.Scala和Go等新语言如何提高并发性?它们如何更容易理解?它们如何防止并发错误?有人能提供展示优势的真实案例吗?

concurrency scala go

38
推荐指数
3
解决办法
4478
查看次数

将消息记录到JUnit控制台

有时候当我编写单元测试时,在JUnit控制台(我使用IntelliJ,但我认为Eclipse非常相似)中有日志消息并在运行测试时看到它们是有用的.

问题是System.out.println不起作用.有没有人有关于如何将日志消息打印到JUnit控制台的任何提示?

java junit intellij-idea

29
推荐指数
1
解决办法
5万
查看次数

使用Guice for Android是否有意义

我在一个非常复杂且具有很多业务逻辑的android项目中使用guice进行辩论.Guice似乎很合适,但每当我开始深入阅读它时,它开始看起来比它需要的更复杂.

我不明白的一件事是:如果Guice是如此伟大并且是编写java代码的最佳方式,那么为什么使用Guice的Android代码如此之少......为什么Google没有在内部使用guice来安装Android?

android guice roboguice

23
推荐指数
4
解决办法
1万
查看次数

Google分析gtag如何在SPA中运作?

据我所知,Google建议如何设置gtag,这是一个总是将更多变量推送到数组上的函数:

window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
Run Code Online (Sandbox Code Playgroud)

关于如何在SPA中使用它的文档,似乎我实际上是在创建内存泄漏.

gtag('config', 'GA_TRACKING_ID', {'page_path': '/new-page.html'});
console.log('window.dataLayer', window.dataLayer);
Run Code Online (Sandbox Code Playgroud)

我的控制台显示每次导航到新页面时,window.dataLayer数组都会变大.

我假设有一些我不理解的东西,因为我怀疑Google希望我在我的应用程序中创建内存泄漏,但我现在很难过.

google-analytics single-page-application gtag.js

6
推荐指数
1
解决办法
916
查看次数

许多js的浏览器性能影响包括

我正在一个网站上工作,使用一个主要布局整个网站,其中包括很多(超过40个)js文件.这个网站渲染速度很慢.浏览器要解析多少开销,以及(缺乏更好的技术术语)"处理"所有这些包括?我知道它们是缓存的,因此不会在每个页面视图上下载它们.但是,每次刷新时,每个包含是否都会被解析并重新执行?

无论如何,我想在处理所有这些包含时会有一些开销,但我不确定它是大还是小.

javascript browser

5
推荐指数
1
解决办法
429
查看次数

为什么 tsc (typescript) 给我错误“找不到 xyz 的类型定义文件”?

我阅读了一些文档并在 tsconfig.json 中尝试了一大堆不同的东西,但无论如何我仍然收到这些错误。这是我的 tsconfig.json 的最简单版本:

{
  "compilerOptions": {
    "rootDir": "./packages/"
  },
  "exclude": [
    "node_modules",
    "babel.config.js",
    "webpack.config.js",
  ]
})
Run Code Online (Sandbox Code Playgroud)

我所有的源代码都在 /packages 中,并且那里只有源代码。奇怪的是我得到的错误(如下)似乎与我的项目无关(包包含react-native源代码)。

error TS2688: Cannot find type definition file for 'anymatch'.

error TS2688: Cannot find type definition file for 'body-parser'.

error TS2688: Cannot find type definition file for 'connect'.

error TS2688: Cannot find type definition file for 'connect-history-api-fallback'.

error TS2688: Cannot find type definition file for 'express'.

error TS2688: Cannot find type definition file for 'express-serve-static-core'.

error TS2688: Cannot find type …
Run Code Online (Sandbox Code Playgroud)

typescript tsc

5
推荐指数
1
解决办法
1879
查看次数

如何在Android中创建一个带有简单分隔线或没有分隔线的按钮面板?

这似乎是一项非常基本的任务,但经过大量的研究和研究,仍未找到明确的答案.我找到了GridView,但不确定这是你应该怎么做的.

我发现有几个应用程序具有类似于我需要的UI元素,例如Android市场的顶部按钮.

这是我正在谈论的一个例子

user-interface android

4
推荐指数
1
解决办法
2950
查看次数

Android和AppEngine Web服务:Json ... RPC,REST ...协议缓冲区?

我正在开发一个可以从Android应用程序访问的Web服务.在对什么是最好的技术进行一些研究之后,我对选项感到有些困惑和茫然.

显然在Android端我希望它尽可能轻量级.我也更愿意分享公共代码,因为它们都是java,尽管那不太重要.我主要担心的是它是否有效,之后是简单而优雅的代码.

我在Android端尝试过gson,效果很好.但后来我读到了协议缓冲区,这似乎更有效,我不确定它是否有显着差异.此外,我不确定是否要使用RPC或REST.

java rest android json protocol-buffers

3
推荐指数
1
解决办法
1719
查看次数

合并时为什么会变得愚蠢?如何使拉/合并更改变得更简单?

我刚刚开始使用Mercurial而且我认为我正在尝试做一些非常简单的事情,这应该是非常典型的,但我很难理解为什么它如此复杂,以及为什么它不能按照应有的方式工作( IMO).

我和朋友分享了一些存储库,他做了一些更改并检查了几个文件并推送它们.现在在svn我习惯只是更新我的工作副本并获得他的更改,没有麻烦.但有了mercurial显然我必须合并.我不明白的是:不要善变足够聪明弄清楚,如果我的朋友所做的最新更改,我还没有碰到过的文件,它应该只是用他的版本的文件?显然它无法解决这个问题,而是试图合并完全失败的文件(实际上我已经安装了自动打开的Beyond Compare,所以我不能完全归咎于糟糕的合并).

无论如何,我不知道为什么它甚至必须"合并"文件,这显然(对我来说)它应该只是采取了远程(即最近的)更改.难道我做错了什么在我如何使用工具,或者是有什么我可以做,使之以更简单的方式(我已经习惯了它只是在Subversion工作的方式)工作...有什么配置设置,命令行标志的任何提示,我可以使用它来更好地工作?

merge mercurial dvcs

2
推荐指数
1
解决办法
770
查看次数

我可以在WebStorm中使用babel-node运行/调试文件吗?

我知道WebStorm中有运行/调试配置,但我不知道如何配置上下文菜单(当我右键单击文件时,它在菜单中有Run ...和Debug ...但我可以找不到配置的地方).

babel webstorm

1
推荐指数
1
解决办法
1959
查看次数

如何将我的本地工作区推或推到原始/主节点

我在Webstorm中启动了对Github Fork进行重新设置。在大约一分钟内,我完全满足了我的需求,我很高兴终于有了Git的解决方案。

现在,经过一个小时的谷歌搜索,合并,重新设置基础,创建和切换分支之后,我觉得我仍然离让git接受我的更改并推送到原点/主节点还很近。

我希望Git再添加两个命令:

git just-tell-me-what-the-problem-is

git just-push-what-is-in-my-local-workspace-to-origin-master
Run Code Online (Sandbox Code Playgroud)

同时,有人可以给我可靠的步骤吗?

! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/celestially/mantra-sample-blog-app'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)

git github

-3
推荐指数
1
解决办法
168
查看次数