在中国程序媛中,他们的代码有什么样的魅力,Aone联合云栖社区、饿了么、钉钉、阿里云、天猫、口碑发起首届程序媛比码活动——不秀大长腿,秀高智商;不秀美图照,秀代码图,参与晒码互动游戏赢“83行代码”T恤!
我们来说说这群女工程师的第83行代码及代码背后的故事:
我是 阿里口碑 搜索推荐组的JAVA女工程师,花名妍霏。
不上相所以自拍比较少,好不容易才找到一张没崩的自拍照骗。
决定再发一张和我们口碑团队的另外一位超漂亮精致妹子的合照!口碑的精致女工程师可是非常的多哦~
我们团队还有大量的坑招人,包括不限于java/c++工程师,算法工程师等等,欢迎大家加入~ fayyen1213@koubei.com
我的第83行代码来自 生成特定搜索场景下所需要查询的门店状态值集合 的一段代码,欢迎大家指正。
/**
* 计算单个display_status
*
* @param status 展示状态列表
* @return 单个计算结果
*/
public static int getEngineDisplayStatus(Map<DisplayStatusEnum, Integer> status) {
int resNum = 0;
for (Map.Entry<DisplayStatusEnum, Integer> entry : status.entrySet()) {
resNum = resNum + (int)(Math.pow(10, entry.getKey().getIndex()) * entry.getValue());
}
return resNum;
}
/**
* 递归计算所有的display_status
*
* @param statusList 展示状态列表
* @param boolList 状态开关列表
* @param resList display_status列表
* @param index 起始位置
* @param calStatus 中间结果
*/
private static void calDisplayStatus(DisplayStatusEnum[] statusList, List<Boolean> boolList, List<Integer> resList,
int index, Map<DisplayStatusEnum, Integer> calStatus) {
if (index == statusList.length) {
resList.add(getEngineDisplayStatus(calStatus));
return;
}
DisplayStatusEnum displayStatusEnum = statusList[index];
if (boolList.get(index)) {
calStatus.put(displayStatusEnum, displayStatusEnum.getDisplayValue());
calDisplayStatus(statusList, boolList, resList, index + 1, calStatus);
if (displayStatusEnum != DisplayStatusEnum.MallDisplay) {
calStatus.put(displayStatusEnum, displayStatusEnum.getDefaultValue());
calDisplayStatus(statusList, boolList, resList, index + 1, calStatus);
calStatus.put(displayStatusEnum, displayStatusEnum.getDisplayValue());
}
} else {
calStatus.put(displayStatusEnum, displayStatusEnum.getDefaultValue());
calDisplayStatus(statusList, boolList, resList, index + 1, calStatus);
}
}
/**
* 计算指定环境下需要查询的所有店铺display_status值
*
* @param status 展示状态列表
* @return display_status最终计算结果
*/
public static String getDisplayStatusQuery(List<DisplayStatusEnum> status) {
List<Integer> r = new ArrayList<Integer>();
List<Boolean> boolList = new ArrayList<Boolean>();
DisplayStatusEnum[] enumList = DisplayStatusEnum.class.getEnumConstants();
for (DisplayStatusEnum e : enumList) {
if (status.contains(e)) {
boolList.add(true);
} else {
boolList.add(false);
}
}
Map<DisplayStatusEnum, Integer> calcuStatus = new HashMap<DisplayStatusEnum, Integer>();
calDisplayStatus(enumList, boolList, r, 0, calcuStatus);
return StringUtils.join(r, " OR ");
}`
与妍霏小姐姐互动,为她打call——>点击进去妍霏晒码